Docker 명령어 정리
20 Feb 2024 #docker
Image
이미지 검색
docker search [OPTIONS] IMAGE_NAME
--automated=false
자동 빌드만 표시--no-trunc=false
모든 결과 표시-s=n
--stars=n
star수가 n개 이상인 이미지만 표시- e.g.,
docker search --stars=100 mysql
이미지 다운로드
docker pull [OPTIONS] IMAGE_NAME[:TAG_NAME]
-a
해당 이미지의 모든 버전 다운로드TAG_NAME
다운로드할 버전 정보, 지정하지 않으면 최신 버전(latest) 다운로드- e.g.
docker pull ubuntu:22.04
이미지 목록 확인
docker images [OPTIONS] [REPOSITORY]
-a
--all
모든 이미지 표시--digests
digest 표시-q
--quiet
이미지 ID만 표시- *컨테이너 목록 확인:
docker ps
이미지 세부 정보 확인
docker image inspect IMAGE_ID
- Full ID를 입력하지 않고 일부만 입력해도 된다.
이미지 삭제
docker rmi [OPTION] IMAGE_NAME:TAG_NAME
-f
실행 중인 컨테이너의 이미지를 강제 삭제, 그러나 실질적으로 untagging만 되고 이미지와 컨테이너 모두 실제로 삭제되지 않는다.- 여러 이미지를 한 번에 삭제:
docker rmi IMAGE_NAME_1 IMAGE_NAME_2 ...
- 특정 이미지의 실행 중인 컨테이너를 모두 종료시킨 후 이미지 삭제:
docker rm -f $(docker ps -a --filter ancestor=IMAGE_NAME) docker rmi IMAGE_NAME
이미지 저장 및 로드
docker save -o DIRECTORY IMAGE_NAME
-o
(output) 이미지를 저장할 디렉토리를 지정
docker load -i DIRECTORY
-i
불러올(input) 이미지의 디렉토리를 지정, 해당 디렉토리 내 이미지가 로드된다.
이미지 태그 지정
docker tag IMAGE_NAME:TAG NEW_NAME:NEW_TAG
- 존재하는 이미지를 복사하여 새로운 이름과 태그로 참조 가능하게 한다.
- e.g.,
docker tag ubuntu:22.04 abcd:0.1
Container
컨테이너 목록 확인
docker ps [OPTION]
- 실행 중인 컨테이너 목록을 확인한다.
-a
실행 여부와 상관 없이 (종료된 것까지) 모든 컨테이너 확인
컨테이너 세부 정보 확인
docker inspect CONTAINER_NAME
이미지에서 컨테이너 실행
docker run [OPTIONS] IMAGE_NAME
--name CONTAINER_NAME
컨테이너 이름 설정--rm
run
명령어 수행 후 컨테이너 삭제. 컨테이너 일회성 사용-it
컨테이너에 터미널 입력을 계속해서 전달-i
컨테이너에 접속하지 않은 상태에서도 stdin 활성화-t
pseudo-TTY 할당(TTY모드 사용), 쉘에 명령어 작성
-d
백그라운드 실행. 옵션 입력 시 실행된 컨테이너 id가 출력된다.-e
환경변수 추가. 추가하고 싶은 환경변수만큼 사용한다.- e.g.,
docker run -e APP_ENV=production APP2_ENV=dev ubuntu:22.04 env
- e.g.,
-p HOST_PORT:CONTAINER_PORT
호스트에 연결된 컨테이너의 특정 포트를 호스트의 포트와 바인딩. 보통 웹서버의 포트를 외부로 노출하기 위해 사용한다.-w DIR
작업 디렉토리 변경-v HOST_DIR:CONTAINER_DIR
호스트의 특정 디렉토리를 컨테이너에 마운트- e.g.,
docker run -v volume:/data ubuntu:22.04
- 현재 작업 디렉토리를 컨테이너에 마운트하기
docker run -v `pwd`:/opt ubuntu:22.04
- e.g.,
-u USER_ID
특정 user id로 컨테이너에 접속. 이미지 빌드 시 계정을 추가해야 가능하다.
실행 중인 컨테이너에 명령어 입력
docker exec CONTAINER_ID or NAME CMD
-it
컨테이너 환경에서 shell 실행,
run
과 exec
의 차이점
run
: 이미지에서 컨테이너를 실행exec
: 이미 실행 중인 컨테이너에서 명령어 실행
컨테이너 중지
docker stop CONTAINER_ID/NAME
- 실행 중인 컨테이너를 중지 (Graceful shutdown)
docker kill CONTAINER_ID/NAME
- 실행 중인 컨테이너를 강제 종료
컨테이너 재시작
docker start CONTAINER_ID/NAME
- 중지된 컨테이너를 다시 시작
docker restart CONTAINER_ID/NAME
- 컨테이너를 중지시키고 다시 시작