앞서 포스팅에서는 Dockerfile의 기본적인 명령어와 사용법에 대해 포스팅했습니다.
이번 포스팅에서는 좀 더 Dockerfile 명령어에 대해 포스팅하려 합니다.
EXPOSE [포트 번호] - 호슽와 연결할 포트 번호를 설정합니다. (docker run의 --expose 옵션과 동일)
ENV [환경 변수] [값] - 환경 변수를 설정합니다. 이 환경 변수는 RUN, CMD, ENTRYPOINT에 적용됩니다.
ADD [복사할 파일 경로] [이미지에 파일이 위치할 경로] - 파일을 이미지에 추가합니다.
COPY [복사할 파일 경로] [이미지에 파일이 위치할 경로] - 파일을 이미지에 추가합니다.
WORKDIR [경로] - RUN, CMD, ENTRYPOINT 명령이 실행될 디렉토리를 설정합니다.
COPY명령어의 경우 RUN ["cp"] 로 대체할 수 있지 않을까 라는 생각을 할 수 있습니다.
하지만 RUN명령어는 이미지 layer를 구성할 때 사용합니다.
반면, COPY는 COPY hello.c/root 와 같이 호스트 머신에 있는 hello.c파일을 컨테이너에 놓을 때 사용합니다.
Dockerfile로 apache2 생성해보기
$ vi Dockerfile 명령어로 Dockerfile은 아래와 같이 작성했습니다.
그리고 다음의 명령어들로 Dockerfile을 빌드하고, 실행시켜 줍니다.
$ docker build -t apache2 .
$ docker run -itd -p 8000:80 apache2
EXPOSE 명령어의 경우 호스트와 연결만 하지 외부에 노출이 되지 않아서 실행할 때 -p 옵션을 통해 외부에 노출시켜줍니다.
localhost:8000에 접속해 apache2가 정상적으로 실행되는 것을 확인할 수 있습니다.
Dockerfile로 nginx 생성해보기
앞서 apache2를 생성해봤는데, 이번에는 Dockerfile로 nginx를 생성해 보겠습니다.
Dockerfile을 다음과 같이 수정해줍니다.
그리고 다음의 명령어들로 Dockerfile을 빌드하고, 실행시켜 줍니다.
$ docker build -t my-nginx.
$ docker run -itd -p 9000:80 my-nginx
localhost:9000에 접속하면 다음과 같이 nginx가 잘 실행되는 것을 확인할 수 있습니다.
'Devops > Docker' 카테고리의 다른 글
[Docker] Docker Compose (0) | 2021.06.11 |
---|---|
[Docker] Dockerfile (1) (0) | 2021.06.11 |
[Docker] Docker 이미지 다루기 (2) (0) | 2021.06.11 |
[Docker] Docker 이미지 다루기 (1) (0) | 2021.06.11 |
[Docker] Apache 사용해보기 (0) | 2021.06.10 |
댓글