본문 바로가기
Docker

Windows 10 Docker 설치 + Windows Container 전환

by Day0404 2021. 5. 17.
728x90
반응형

Windows 10 Docker 설치 + Windows Container 전환

Windows 환경에서 도커를 사용하기 위한 방법을 작성하려고 합니다.

도커에 대한 설명이나 컨테이너 개념은 생략하고 설치 및 Windows Container 사용하기에 대한 내용만 작성하려 합니다.

저도 프로젝트가 완성이 되면 도커를 통해 만들어진 애플리케이션을 올릴 예정이기 때문에 도커의 여러 개념들이나 사용 방법을 앞으로 하나씩 작성해보려 합니다.

저의 개발환경이 Windows여서 Windows를 기준으로 작성 예정입니다.

 

사전 준비

도커 설치를 위해서는 Hyper-V를 활성화 시켜야 합니다.

작업 관리자에서 가상화가 "사용"으로 되어 있는지 확인합니다.

(만약 사용이 아닌 경우 BIOS를 통해 사용으로 설정할 수 있습니다.)

Hyper-V 활성화

작업 관리자의 가상화가 사용으로 되어 있으면 제어판 -> 프로그램 -> Windows 기능 켜기/끄기에서 Hyper-V를 켜주셔야 합니다. 이 체크 후 PC 재시작을 해주셔야 정상적으로 적용이 됩니다.

도커 설치

아래 링크로 접속하여 Get Docker를 통해 도커를 다운로드합니다.

docker windows

 

출처 : https://hub.docker.com/editions/community/docker-ce-desktop-windows/

installer 다운로드가 완료되면 실행시켜주면 아래와 같이 설치를 시작합니다.

저는 이미 설치가 되어 있어서 처음 설치하시면 Close and restart라고 나오실 겁니다. 이후 재부팅하시고 나면 정상적으로 설치가 완료됩니다. (트레이 아이콘에서 고래를 확인!)

 

 

Windows 컨테이너 개발 환경 구축하기

Windows 컨테이너 호스트로 전환하기

트레이 아이콘에서 Switch to Windows Container 클릭

잠시 후 Windows 컨테이너 호스트 모드로 전환됩니다.

Hyper-V 가상 머신을 기반으로 하는 리눅스 컨테이너 호스트 모드와는 달리 Windows OS의 기능을 직접 사용하므로 훨씬 로딩이 빠릅니다.

전환이 잘 되었는지 확인

docker run -it --rm hello-world

이렇게 나오신다면 정상적으로 전환이 완료되었다고 생각하시면 됩니다.

Windows 컨테이너 애플리케이션 만들기

Windows 컨테이너 이미지 중 Core 컨테이너에 기본으로 포함되어있는 PowerShell을 이용하여 외부에서 웹 요청을 받아들일 수 있는 간단한 웹 서버 컨테이너를 생성합니다.

 

사용자 홈 디렉토리 아래에 새로운 작업용 디렉토리를 생성합니다. (디렉토리 위치는 원하는 곳에 만드셔도 무방합니다.)

cd $env:USERPROFILE
mkdir dockertest
cd dockertest

샘플 컨테이너에서 표시할 웹 페이지를 방금 만든 디렉터리 안에 추가하고

index.html 파일을 만들어 놓고 내용은 아무 내용이나 채워 넣으시면 됩니다.

echo '<h1>Hello Docker!</h1>' > index.html

새로운 Dockerfile 파일을 만들어 원하는 텍스트 편집기로 열어줍니다. (전 이런 건 VS Code가 편하더라고요)

확장자를 붙이지 않도록 만들어야 하기 때문에, 명령어로 새 파일을 먼저 만드는 것이 정확합니다.

New-Item -Type File .\Dockerfile

Dockerfile의 내용은 아래와 같이 작성합니다.

FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019

WORKDIR C:\\Inetpub\\wwwroot
ADD index.html .

EXPOSE 80/tcp

위의 Dockerfile은 웹 서버가 보여줄 index.html 파일을 추가하는 것 이외에 특별한 내용이 없습니다.

 

 

Dockerfile을 이용하여 웹 서버 컨테이너를 빌드합니다. (첫 빌드 시 시간이 오래 걸릴 수 있습니다.)

docker build -t wwwtest:latest

 

localhost:8080에서 index.html 이 잘 나오는지 확인하면 끝!

반응형

댓글