도커의 기본 개념은 Immutable Infrastructure입니다.
Immutable의 의미와 같이 한 번 설정한 이후에 큰 변경을 주지 않고 사용하게 됩니다.
잘 구축된 서비스를 쉽게 배포해서 사용하고 버리는 개념입니다.
도커는 Dockerfile 작성을 통해서 원하는 형태로 컨테이너 이미지를 생성할 수 있습니다.
생성된 컨테이너의 변경 내역을 docker commit 명령어로 반영해서 새로운 이미지를 생성할 수 있습니다.
2017/01/14 - [Windows/가상화] - 윈도우 서버 2016 컨테이너 이미지 생성
컨테이너를 직접 수정하고 새로운 이미지를 생성하는 대신에 Dockefile을 사용할 수 있습니다.
Dockerfile은 도커 이미지를 위한 설계도입니다.
한 번 잘 작성하면 큰 변경을 하지 않고 사용이 가능합니다.
위 링크의 컨테이너 이미지 생성 작업과 동일 기능을 하는 Dockerfile을 만드는 방법입니다.
1. Dockerfile 생성
잘 설정한 Dockerfile은 그대로 배포해서 사용할 수 있습니다.
파워쉘에서 아래 명령어로 Dockerfile 파일을 생성(확장자는 없음)합니다.
New-Item D:\Docker\Dockerfile -Force
다음 명령어로 Dockerfile에 내용을 추가합니다.
Add-Content -Value "FROM microsoft/iis" -Path D:\Docker\Dockerfile Add-Content -Value "RUN echo `"Hello World From a Windows Server Container`" > C:\inetpub\wwwroot\index.html" -Path D:\Docker\Dockerfile
Dockerfile에 다음과 같은 내용이 추가됩니다.
FROM microsoft/iis RUN echo "Hello World From a Windows Server Container" > C:\inetpub\wwwroot\index.html |
FROM은 기반이 되는 이미지를 지정하며 microsoft/iis를 사용합니다.
microsoft/iis:latest로 태그를 latest로 설정해도 되는데 기본적으로 태그가 없으면 latest입니다.
RUN 다음에는 쉘 스크립트로 명령어를 실행하도록 할 수 있습니다.
도커 이미지를 Dockerfile로 생성하려면 docker build 명령어를 사용합니다.
도커 클라우드(https://cloud.docker.com/)에 가입하고 <user>에 아이디를 입력해서 이미지를 생성합니다.
docker build -t <user>/iis-dockerfile D:\Docker
기반 이미지가 기본적으로 커서 처음 다운로드에 시간이 걸리는 편입니다.
완료되면 아래 명령어로 iis-dockerfile이라는 이름으로 새로 생성된 이미지를 확인할 수 있습니다.
docker images
생성된 이미지는 docker run 명령어로 컨테이너로 생성할 수 있습니다.
동일하게 <user> 부분에는 실제 docker에 가입한 아이디를 입력하면 됩니다.
docker run -d -p 80:80 --name hellodocker <user>/iis-dockerfile powershell
웹페이지에서 정상적으로 표시되는 것을 확인하면 Dockerfile 작성이 완료된 것입니다.
간단한 Dockerfile 작성으로 쉽게 IIS 서비스를 사용할 수 있습니다.
2. Docker Hub에 Docker Push
Docker Hub(http://hub.docker.com)는 작성한 Dockerfile을 올릴 수 있는 공개 레지스트리를 제공합니다.
이미 다양한 이미지들이 등록되어 있어서 간편하게 가져다 사용할 수 있습니다.
Docker Hub에 직접 작성한 Dockerfile을 올려놓고 공유하는 방법입니다.
도커는 Git과 유사한 명령어로 컨테이너 이미지를 올리고 받을 수 있습니다.
파워쉘(Powershell)에서 아래 명령어로 미리 생성한 docker 계정으로 로그인이 가능합니다.
docker login
아이디와 비밀번호를 순서대로 입력해서 로그인합니다.
다음 명령어로 간단하게 Docker Hub에 컨테이너 이미지를 올릴 수 있습니다.
docker push <user>/iis-dockerfile
이미지가 간단하게 Docker Hub에 올라가게 됩니다.
Docker Hub에 올려둔 이미지를 받는 것을 하기 전에 이전에 생성한 이미지를 삭제합니다.
docker rmi <user>/iis-dockerfile
Docker Hub에 올려둔 것을 받을 때는 pull로 가져올 수 있습니다.
docker pull <user>/iis-dockerfile
삭제한 이미지가 Docker Hub에서 받아지며 새로 생기는 것을 확인할 수 있습니다.
생성한 이미지는 언제 어디서든 docker pull 명령어로 받아서 사용할 수 있게 됩니다.
'Windows > Container' 카테고리의 다른 글
윈도우 서버 2016 컨테이너 이미지 생성 (0) | 2017.01.14 |
---|---|
중첩 가상화로 가상머신(VM)에서 Hyper-V 실행 (0) | 2017.01.11 |
윈도우 서버 2016 도커(Docker) 컨테이너 시작하기 (0) | 2017.01.08 |
윈도우10 도커(Docker) 컨테이너 시작하기 (2) | 2016.12.31 |