DOCKER 관련 명령어 정리
Dockerfile
FROM container의 운영환경 base image
MAINTAINER image 생성 owner 정보
LABEL image에 container 관련 추가 정보를 저장
RUN build를 위해서 base image에서 실행할 command
COPY build시 host의 파일을 container로 복사
ADD build시 host의 파일(tar, url)을 container로 복사 (확인필요)
WORKDIR build시 명령이 실행될 작업 directory로 설정
ENV 환경변수 지정
USER 명령 및 conatiner 실행시 적용할 user 설정
VOLUME container directory로 mount
EXPOSE conatiner 동작시 외부로 open할 port 설정
CMD container 동작시 자동으로 실행할 서비스나 script 지정 (변수로 활용이 많이된다)
ENTRYPOINT CMD와 함께 사용하면서 command 지정시 사용 (변경할 수 없음)
life cycle
docker create --name 이름 이미지이름:태그 지정 이름으로 image를 container로 만듬 (실행은 하지않는다)
docker start 옵션 이름 container를 실행
docker stop 옵션 이름 container를 중지
docker rm 옵션 이름 container를 삭제 (실행 중인 것은 삭제되지 않음. -f 옵션으로 강제 삭제 가능)
docker run 옵션 이미지이름:태그 container 생성 및 실행. 현재 local에 image가 없으면 pull까지 실행
docker top 이름 container 실행 내부 프로세스 확인
docker logs 이름 log 확인
docker exec 이름 -it /bin/bash container 내부로 접속
docker inspect 옵션 이미지이름:태그 container image 상세보기
docker stat 실행중인 container의 runtime resource 통계 확인
docker event docker host의 실시간 event 정보를 출력
docker option
-a 전체 내역을 보여줌
-d detached mode (background mode) 흔히 말하는 데몬
-p host와 container의 port를 연결 (forwarding)
-p hostPort:containerPort host와 container의 port를 연결
-p 8080 container port는 8080으로 open 하고 host port는 random으로 연결
-P dockerfile의 EXPOSE 개수에 맞춰서 random port가 자동으로 open
-v host와 container의 directory를 연결 (mount)
-v /hostpath:/container-path host-container volume 연결
-v /hostpath:/container-path:ro host-container volume 연결 및 read/write mode (보통 readonly 사용)
-v /container-path /var/lib/docker/volumes/{UUID} 를 자동생성해서 연결
-e container에서 사용할 환경변수 설정
-f 변경사항을 watch해서 적용 또는 보여줌
--name container 실행 이름 설정
--it -i와 -t를 동시에 사용한 것으로 terminal 입력을 위한 설정 (container의 표준입력과 컴퓨터의 키보드 입력을 연결)
--rm process 종료 시 container 자동제거
--link container 연결
--restart docker desktop을 실행할때마다 자동 restart 실행여부
inspect --format '{{.Network.Ip}}' Network의 Ip만 보기 (.으로 구분)
참고) vi ex 명령
:e! 취소
:w 저장
:w filename filename 이라는 새 이름으로 저장
:q 종료 (마지막 변경사항 저장안되면 종료안됨)
:q! 변경사항 취소 & 강제종료
:wq 저장 후 종료
:r filename 현재 편집중인 파일의 cursor위치에 filename의 내용을 끼워넣음