728x90
728x90

애저(Azure)를 이용하여 도커(Docker)를 구축하고, Dockerfile을 이용하여 직접 도커 이미지를 만들고 컨테이너 만들어보기

들어가며

  • 애저(Azure)를 이용하여 구축한 도커(Docker)에서 Dockerfile을 이용하여 직접 도커 이미지를 만들고, 이 이미지를 이용하여 컨테이너를 만들어 보자.
  • 이 글은 이전 글(https://dev-astra.tistory.com/390)에 이어서 진행된다.

 

실습하기

Dockerfile을 이용하여 직접 도커 이미지를 만들어보기

  • 다음과 같이 홈 디렉터리($HOME)로 이동한 후, docker-practice 디렉터리를 생성하고, 그 안에 Dockerfile 파일을 만든다.
$ cd $HOME
$ mkdir docker-practice
$ cd docker-practice
$ touch Dockerfile

 

  • vi 에디터를 이용하여 Dockerfile 파일을 수정한다.
$ vi Dockerfile
-bash: vi: command not found 안내문이 출력될 경우
  • 도커에 vi가 설치되어 있지 않아 vi 명령문이 발견되지 않았다는 안내문이 출력될 수 있다.
  • 이럴 때는 다음 명령을 실행하여 vim 패키지를 설치해준다.
$ sudo apt-get install vim

 

Dockerfile 기본 명령어
명령어 설명
FROM <image>[:<tag>] [AS <name>] Dockerfile이 Base Image로 어떠한 이미지를 사용할 것인지를 명시하는 명령어
COPY <src> ... <dest> <src> 파일 혹은 디렉터리를 <dest> 경로에 복사하는 명령어 
RUN <command>
RUN ["executable-command", "parameter1", "parameter2"]
명시한 커맨드를 도커 컨테이너에서 실행하는 것을 명시하는 명령어
CMD <command>
CMD ["executable-command", "parameter1", "parameter2"]
CMD ["parameter1", "parameter2"]
- 명시한 커맨드를 도커 컨테이너가 시작될 때 실행하는 것을 명시하는 명령어 
- 비슷한 역할을 하는 명령어로 ENTRYPOINT가 있다. 
- 하나의 도커 이미지에서는 하나의 CMD만 실행할 수 있다는 점에서 RUN 명령어와 다르다.
- CMD ["parameter1", "parameter2"]ENTRYPOINT와 함께 사용될 때 쓰인다.
WORKDIR /path/to/workdir - 이후 작성될 명령어를 컨테이너 내의 어떤 디렉터리에서 수행할 것인지를 명시하는 명령어
- 해당 디렉터리가 없다면 생성한다.
ENV <key> <value> 컨테이너 내부에서 지속적으로 사용될 환경 변수의 값을 설정하는 명령어
EXPOSE <port>
EXPOSE <port>/<protocol>
컨테이너에서 뚫어줄 포트/프로토클을 지정할 수 있다. (디폴트 : TCP)

 

  •  Dockerfile기본 명령어에 대한 자세한 내용은 아래의 공식 문서를 참고한다.
 

Dockerfile reference

 

docs.docker.com

 

  • 이제 도커 이미지를 만들어보자. 다음 명령을 실행한다.
    • build 명령어는 도커 이미지를 생성하는 명령어이다.
    • Dockerfile을 참조해서 my-image 이미지를 현재 경로(.)에 생성한다.
    • -t는 태그를 지정하는 옵션으로, 태그(버전)은 v1.0.0으로 설정한다.
$ docker build -t my-image:v1.0.0 .

 

  • 다음 명령을 실행하여 빌드된 도커 이미지가 생성되었는지 확인해본다.
$ docker images

 

생성한 도커 이미지를 이용하여 컨테이너 만들어보기

  • 다음의 명령을 실행하여 도커 이미지를 실행시킨다.
    • run 명령어를 사용하여 도커 이미지를 실행하여 컨테이너를 생성한다.
    • --name 옵션을 이용하여 컨테이너의 이름demo1로 설정한다.
    • 태그(Tag)v1.0.0my-image 이미지를 사용한다.
$ docker run --name demo1 my-image:v1.0.0

 

참고 사이트

도커 공식 문서
 

Docker Docs: How to build, share, and run applications

 

docs.docker.com

 

728x90
728x90

애저(Azure)를 이용하여 도커(Docker)를 구축하고, Dockerfile을 이용하여 직접 도커 이미지를 만들고 컨테이너 만들어보기들어가며실습하기Dockerfile을 이용하여 직접 도커 이미지를 만들어보기생성한 도커 이미지를 이용하여 컨테이너 만들어보기참고 사이트