이미지 받기/생성/실행
이미지 받기
docker pull tomcat:7- 최신 이미지는 tomcat:latest 로 받을 수 있음
이미지 목록 출력
docker imagesDocker image 삭제
docker rmi ${IMAGE_ID}실행
docker run -d -i -t -p 8080:8080 tomcat:7- -d : 컨테이너를 백그라운드로 실행한다
- -i(interactive) : STDIN 을 사용할 수 있게 한다
- -t(Pseudo-ttp) : 해당 컨테이너에 터미널을 할당한다
- -p : 포트포워딩 설정. 위의 설정은 8080 포트로 요청이 들어왔을 때 8080 포트로 포워딩한다.
- -name : 컨테이너에 이름을 지정한다
docker run -d -i -t -p 8080:8080 tomcat:7 /bin/bash혹은 위와 같이 하면 tomcat:7 의 /bin/bash 를 실행시킨다
컨테이너 관련 명령어
모든 컨테이너 목록을 출력
docker ps -aps 만 사용하면 현재 동작하는 컨테이너를 볼 수 있다.
해당 컨테이너 시작, 재시작, 접속, 정지, 삭제
docker start ${CONTAINER_NAME}
docker restart ${CONTAINER_NAME}
docker attach ${CONTAINER_NAME}
docker stop ${CONTAINER_NAME}
docker rm ${CONTAINER_NAME}컨테이너 둘러보기
컨테이너 로그 보기
docker logs [OPTIONS] ${CONTAINER_NAME}컨테이너에 명령어 전달
docker exec [OPTIONS] ${CONTAINER_NAME} COMMEND [ARG...]Dockerfile
FROM
- base image 를 지정한다
- 다음과 같이 버전도 정확히 지정해주는것이 좋다
FORM ubuntu:16.04RUN
- shell command 를 해당 docker image 에 실행시킬 떄 사용한다
RUN ["apt-get", "install", "-y", "nginx"]docker image 에 nginx 를 설치할 때 사용
EXPOSE
Docker container 외부에 노출할 포트를 지정할때 사용한다.
EXPOSE 8080- 8080 포트를 외부로 노출
ENV
환경 변수를 지정한다. 환경변수로 지정한 값은 아래에서 사용할 수 있다.
FROM delta
ENV FOO /bar
WORKDIR ${FOO} # WORKDIR /bar
ADD . $FOO # ADD . /bar
COPY \$FOO /end # COPY /bar /end이 변수는 도커를 실행할 때 -e 옵션을 주어 오버라이드 할 수 있다.
CMD
도커 컨테이너가 시작할 떄 실행할 커맨드를 지정할 수 있다. RUN 하고 흡사하지만, CMD 는 이미지를 빌드할때 실행되는 것이 아니라 컨테이너가 시작될때 실행된다.
CMD ["python", "main.py"]ENTRYPOINT
CMD 와 흡사하지만 ENTRYPOINT 는 오버라이드 할 수 없다.
ENTRYPOINT ["/usr/sbin/nginx"]WORKDIR
리눅스의 cd 커멘드와 비슷한 개념이다.
USER
해당 이미지를 실행할 user 를 지정해준다.
VOLUME
호스트의 디렉토리를 도커 컨테이너에 연결할 수 있다. 주로 로그 수집이나 데이터 저장에 사용된다.
VOLUME ["/opt/origianl"]ADD
파일과 디렉토리를 호스트에서 도커 이미지로 복사한다.
ADD file /some/dir빌드 디렉토리 밖의 파일은 추가할 수 없다.
ARG
이미지 빌드시에 어규먼트를 추가할 수 있다.
docker build --build-arg PROJECT_NAME=api -t tomcat -f Dockerfile .