00 개요
- docker의 image, container, compose에 관한 명령어들을 정리함
01 Docker 관련 명령어
0. Docker 도움말 (매뉴얼)
- docker 명령어에 대한 도움말: docker {명령어} --help
- 예) docker run --help
1. Docker Image
- 이미지 빌드
- Dockerfile을 이용해서 이미지 생성 (가장 많이 사용됨): docker build -t {이미지명:태그명} {dockerfile 경로}
- 이미지 삭제
- 단일 이미지 삭제: docker image rmi {이미지명 또는 이미지ID}
- 모든 이미지 삭제 (컨테이너가 있어서 삭제 불가 시 강제로 삭제하는 -f 옵션 사용): docker rmi {옵션} {이미지명 또는 이미지ID}
- 이미지 조회
- 이미지 보기: docker images {옵션}
- 모든 (미사용, dangling 포함) 이미지 확인: docker images -a
- 현재 이미지 목록 확인: docker images ls
- Dockerhub에서 이미지 검색: docker search {이미지명}
- 이미지 보기: docker images {옵션}
- 이미지 다운로드
- Dockerhub에서 이미지 가져오기: docker image pull {이미지명:태그}
- 실행한 docker container를 이미지로 생성
- 구동한 Docker 컨테이너를 commit(변경사항을 다시 이미지로 만듬): docker container commit {컨테이너명} {commit내용}
2. Docker Container
- 컨테이너 생성
- 컨테이너 생성: docker create {옵션} --name {컨테이너명} {이미지 Repository}
- 컨테이너 생성 + 실행: docker run {옵션} --name {컨테이너명} {이미지 Repository}
- 주로 사용하는 명령어: docker run -it --name {컨테이너명} -p {호스트 port}:{컨테이너 port}
- 옵션:
- -i: 표준 입력(stdin)을 활성화, 보통 이 옵션을 사용하여 Bash 에 명령 입력
- -t: TTY 모드(pseudo-TTY)를 사용, Bash를 사용하려면 이 옵션 설정 필수 (미설정 시 명령을 입력할 수는 있으나 Shell이 표시되지 않음
- -d: 데몬 프로세스로 실행(백그라운드)해 프로세스가 끝나도 유지
- --name {이름}: 컨테이너 이름 지정
- -p: 호스트와 컨테이너의 포트를 연결 - 외부 접근 설정(도커 컨테이너는 기본적으로 외부에서 접근할 수 없게 구성되어 있음)
- --rm: 컨테이너가 종료되면{내부에서 돌아가는 작업이 끝나면} 컨테이너를 제거
- -v: 호스트와 컨테이너의 디렉토리를 연결
- 컨테이너 이름 변경
- docker rename {기존 이름} {변경할 이름}
- 컨테이너 구동 확인
- 실행 중인 컨테이너 리스트: docker ps {옵션}
- 모든 컨테이너의 리스트 출력: docker container ps -a
- 컨테이너 삭제
- 단일 컨테이너 삭제: docker rm {컨테이너명 또는 컨테이너ID}
- 모든 컨테이너 삭제: docker rm $(docker ps -a -q) 또는 docker rmi $(docker images -q) -f
- 컨테이너 실행, 종료
- 컨테이너 실행: docker start {이미지명:태그}
- 단일 컨테이너 중지: docker stop {컨테이너명 또는 컨테이너ID}
- 모든 컨테이너 중지: docker stop $(docker ps -aq)
- 컨테이너 내부 접속, 내부 종료
- 실행중인 컨테이너 접속: docker exec -it {컨테이너명 또는 컨테이너 ID} /bin/bash 또는 docker attach {이미지명:태그}
- 실행중인 컨테이너 접속 종료: exit 또는 Ctrl + D
3. Docker Compose
- 실행
- 컴포즈 파일에 정의된 컨테이너들을 빌드 후 실행: docker-compose up
- 컴포즈 파일에 정의된 컨테이너들을 빌드 후 백그라운드로 실행: docker-compose up -d
- 재시작
- 컴포즈 파일로 실행된 컨테이너들 재시작: docker-compose restart
- 컴포즈 파일로 실행된 컨테이너들 중 해당 컨테이너만 재시작: docker-compose restart {컨테이너명 또는 컨테이너ID}
- 종료
- 컴포즈 파일로 실행된 컨테이너들 종료: docker-compose down
- 컴포즈 파일로 실행된 컨테이너들 종료 및 볼륨 제거: docker-compoase down -v
- 삭제
- 컴포즈 파일로 실행된 컨테이너들 종료 및 삭제: docker-compoase down?
- 조회
- 컴포즈 파일로 실행된 컨테이너들 확인: docker-compose ps
- 빌드
- 컴포즈 파일에 정의된 컨테이너들 빌드: docker-compose build
- 컴포즈 파일에 정의된 컨테이너들 중 해당 컨테이너만 빌드: docker-compose build {컨테이너명 또는 컨테이너ID}