Windows에서 도커를 사용하려면 관리자 권한으로 실행한 CMD나 PowerShell을 사용해야 한다.
1. 도커 버전 확인
docker -v
2. 도커 공식 이미지 저장소에서 OS 이미지 내려받기
docker pull [이미지 이름]:[이미지 태그(버전)]
예)
docker pull ubuntu:20.04
3. 내 로컬 저장소에 저장된 이미지 목록 불러오기
docker images
4. 내 로컬 저장소에 저장된 이미지 삭제
docker rmi [이미지id]
이미지 모두 삭제할 경우
docker image prune -a
5. 컨테이너를 삭제하기 전 이미지를 삭제할 경우
-f 옵션을 붙이면 컨테이너도 강제삭제
docker rmi -f [이미지id]
6. 컨테이너 생성
docker create [옵션] [이미지 이름]:[이미지 태그(버전)]
예)
docker create -it ubuntu:20.04
docker create -i -t ubuntu:20.04
컨테이너를 생성하면 컨테이너 내부로 들어가지 않고, 컨테이너가 시작되지 않는다.
Pull (이미지가 있을 때) Run
Pull (이미지가 없을 때) Create -> Start -> Attach
7. 컨테이너 생성 옵션
docker (run | create) [옵션] [이미지 이름]:[이미지 태그(버전)]
예)
docker run --name container -d -v ~/data:/data/db mongo:4.4.3
이 외.
컨테이너 이름을 지정
--name [컨테이너 이름]
Detached 모드: 컨테이너를 백그라운드에서 동작하는 애플리케이션을 실행할 때 설정
-d
호스트의 N번 포트를 컨테이너의 N번 포트와 연결 (여러 번 사용 가능)
-p [호스트포트]:[컨테이너포트]
볼륨. 호스트의 디렉토리와 컨테이너의 디렉토리를 공유
-v [호스트 디렉토리]:[컨테이너 디렉토리]
8. 컨테이너 실행
docker run -it ubuntu:20.04
docker run -i -t ubuntu:20.04
만약 실행하려는 이미지가 로컬 저장소에 없다면, 도커 공식 이미지 저장소에서 새 이미지를 다운 받아 컨테이너 생성 후 실행된다.
9. 컨테이너 시작
docker start [컨테이너 ID(2~4자) | 컨테이너 이름]
docker start ubuntu_test
docker start db93
예)
docker start ubuntu_test
예)
docker start db93
10. 컨테이너 진입
docker attach [컨테이너 ID (2~4자) | 컨테이너 이름]
예
docker attach ubuntu_test
예
docker attach db93
11. 컨테이너 목록 확인
현재 실행 중인 컨테이너 목록만 확인할 경우
docker ps
동작 상태와 상관 없이 모든 컨테이너 목록 확인할 경우
docker ps -a
12. 컨테이너 이름 변경
docker rename [변경 전 컨테이너 이름] [변경 후 컨테이너 이름]
예)
docker rename ubuntu_test ubunt_test2
13. 컨테이너 종료
컨테이너 정지 후 컨테이너를 나갈 경우
exit
컨테이너를 실행 중인 상태에서 컨테이너 내에서 나갈 경우
Ctrl + P, Q
(Ctrl 키를 계속 누른 상태에서 P 키를 누르고 Q 키를 누르기)
14. 컨테이너 중단
컨테이너를 중단하는 경우
docker stop [컨테이너 ID(2~4자) | 컨테이너 이름]
예)
docker stop ubuntu_test
15. 컨테이너 삭제
docker rm [컨테이너 ID(2~4자) | 컨테이너 이름]
예)
docker rm ubuntu_test
예)
docker rm db93
만약 실행 중인 컨테이너를 삭제하려면 컨테이너를 먼저 정지 후에 삭제가 가능하다.
예)
docker stop ubuntu_test
docker rm ubuntu_test
실행 중인 컨테이너를 강제로 삭제할 경우
docker rm [옵션]* [컨테이너 ID(2~4자) | 컨테이너 이름]
예)
docker rm -f ubuntu_test
16. 모든 컨테이너 삭제
docker container prune
컨테이너 ID만 출력하는 명령어를 이용하여 모든 컨테이너를 삭제할 경우
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)