Docker의 명령어들이 많아 따로 정리해봤습니다. (지속적으로 추가할 예정)
Docker Image
<image_name>: 도커 이미지 이름
<image_name>[:<tag>]: 이미지 태그를 지정할 수 있음 (버전이나 특징 등)
Docker 이미지 목록
docker images
-a: 사용하지 않는 이미지 등 까지 모두 확인
Docker 이미지 삭제
docker rmi <image_name>
-f: 강제 삭제, 실행중인 이미지도 삭제 가능
Docker 이미지 검색
docker search <image_name>
Docker 허브에 있는 이미지들을 검색할 수 있음.
Docker 이미지 가져오기
docker pull <image_name>
Docker 허브에 있는 이미지를 가져올 수 있음.
Docker Container
Docker 컨테이너 목록
docker ps
- a: 사용하지 않는 컨테이너 등 까지 모두 확인
--filter name=<name>: 컨테이너 이름을 필터링
--filter status=<status>: 컨테이너 상태를 필터링, created, restarting, running, paused, exited, dead 중 하나를 <status>에 입력
--filter ancestor=<image>: 같은 이미지를 공유하는 컨테이너를 필터링
Docker 컨테이너 생성
docker create -it --name <container_name> <image_name>
-i: 상호 입출력
-t: tty 활성화, bash 셀 사용
Docker 컨테이너 생성 및 접속
docker run -it -p <server_port>:<container_port> --gpus all --name <container_name> <image_name>
-i: 상호 입출력
-t: tty 활성화, bash 셀 사용
-p: port forwarding 지정, <server_port>에 외부에서 접속할 port, <container_port>에 docker 내부에서 접속할 port를 지정
-gpus: docker는 gpu를 container마다 다르게 할당해 줄 수 있음. gpus 뒤에 all 입력시 전체 다 사용, "device=0", "device=0,1" 이런 식으로 입력시 CUDA에 입력하는 것처럼 gpu를 할당해줄수 있음.
--name: container의 이름 지정, <container_name>은 container의 이름, <image_name>은 image의 이름
Docker 컨테이너 접속
docker attach <container_name>
docker exec -it <container_name> bash
exec과 run의 차이: exec는 현재 작동중인(ps명령어 list에 컨테이너 목록이 나올때) 컨테이너에만 접속가능.
attach와 exec의 차이: attach는 직접 컨테이너에 접속하는 개념 / exec는 컨테이너에 명령어를 전달하는 개념