Docker X Windows : (2) Windows에서 CMD/Powershell로 Docker의 기본 명령어 다루기

Dean Kim·2021년 3월 30일
2

Docker-Kubernetes

목록 보기
2/3
post-thumbnail

지금부터 Windows에서 Docker를 실행하여 기본적인 명령어에 대해 알아보겠습니다.

 

1. Windows CMD 또는 Powershell로 도커 사용하기

Windows에서 도커를 사용하려면, 관리자 권한으로 실행CMD 또는 PowerShell을 이용해야 합니다.

 

2. 도커 명령어

도커 버전 확인

# docker -v
Doker version 20.10.2, build 2291f61

 

도커 공식 이미지 저장소에서 이미지 내려받기

도커 공식 이미지 저장소에서 새 이미지를 내려받고 싶다면 다음 명령어를 입력합니다.

# docker pull [이미지 이름]:[이미지 태그(버전)]
# docker pull ubuntu:20.04

만약 '이미지 태그(버전)'을 입력하지 않는다면, 가장 최신 버전(latest)으로 인식합니다.

 

로컬 저장소에 저장된 이미지 목록 불러오기

로컬 저장소에 저장되어 있는 이미지 목록을 보고 싶다면 다음 명령어를 입력합니다.

# docker images

 

컨테이너 생성 (Run)

Ubuntu 20.04 LTS 운영체제의 새 컨테이너를 생성하고 싶다면 다음 명령어를 입력합니다.

# docker run -it ubuntu:20.04
# docker run -i -t ubuntu:20.04

만약 해당 이미지가 로컬 저장소에 없다면, 다음과 같이 나타나며 도커 공식 이미지 저장소에서 새 이미지를 다운로드 받아 컨테이너를 생성합니다.

Unable to find image 'ubuntu:20.04' locally
20.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:20.04
root@0589vxd8f44:/#

컨테이너를 생성하면 자동으로 컨테이너 내부로 진입하게 됩니다.

 

컨테이너 생성 (Create)

Ubuntu 20.04 LTS 운영체제의 새 컨테이너를 생성하고 싶다면 다음 명령어를 입력합니다.

# docker create [옵션] [이미지 이름]:[이미지 태그(버전)]
# docker create -it ubuntu:20.04
# docker create -i -t ubuntu:20.04

만약 컨테이너에 이름을 붙이고 싶다면 다음 명령어를 입력합니다.

# docker create [옵션] [이미지 이름]:[이미지 태그(버전)]
# docker create -it ubuntu:20.04
# docker create -i -t ubuntu:20.04

컨테이너를 생성하면 컨테이너 내부로 들어가지 않고, 컨테이너가 시작되지 않습니다.

Pull(이미지가 없을 때) -> Run
Pull(이미지가 없을 때) -> Create -> Start -> Attach

 

컨테이너 생성 옵션

형식
# docker (run | create) [옵션] [이미지 이름]:[이미지 태그(버전)]

예제
# docker run --name container -d -v ~/data:/data/db mongo:4.4.3

--name [컨테이너 이름]
컨테이너의 이름을 직접 지정

-d
Detached 모드. 컨테이너를 백그라운드에서 동작하는 애플리케이션을 실행할 때 설정

-p [호스트 포트]:[컨테이너 포트]
호스트의 N번 포트를 컨테이너의 N번 포트와 연결 (여러 번 사용 가능)

-p [호스트 IP]:[호스트 포트]:[컨테이너 포트]
특정 바인딩 IP인 호스트의 N번 포트를 컨테이너의 N번 포트와 연결 (여러 번 사용 가능)

-v [호스트 디렉토리]:[컨테이너 디렉토리]
볼륨. 호스트의 디렉토리와 컨테이너의 디렉토리를 공유

 

컨테이너 시작

'Create' 명령어로 생성한 컨테이너를 시작하려면 다음 명령어를 입력합니다.

# docker start [컨테이너 ID(2~4자) | 컨테이너 이름]
# docker start ubuntu_test
# docker start db93
ubuntu_test

 

컨테이너 진입

컨테이너 내부로 진입하려면 다음 명령어를 입력합니다.

# docker attach [컨테이너 ID(2~4자) | 컨테이너 이름]
# docker attach ubuntu_test
# docker attach db93
root@db93a5a17e30:/#

 

컨테이너 목록 확인

현재 실행 중인 컨테이너 목록을 확인하려면 다음 명령어를 입력합니다.

# docker ps

동작 상태에 상관없이 모든 컨테이너 목록을 확인하려면 다음 명령어를 입력합니다.

# docker ps -a

 

컨테이너 이름 변경

컨테이너 이름을 변경하려면 다음 명령어를 입력합니다.

# docker rename [변경 전 컨테이너 이름] [변경 후 컨테이너 이름]
# docker rename ubuntu_test ubunt_test2

 

컨테이너 종료

컨테이너를 정지하고 컨테이너 내에서 나가려면 다음 명령어를 입력합니다.

# exit

컨테이너를 실행 중인 상태에서 컨테이너 내에서 나가려면 다음 키를 입력합니다.

Ctrl + P, Q
(Ctrl 키를 계속 누른 상태에서 P 키를 누르고 Q 키를 누르기)

 

컨테이너 중단

컨테이너를 중단하려면 다음 명령어를 입력합니다.

# docker stop [컨테이너 ID(2~4자) | 컨테이너 이름]
# docker stop ubuntu_test
docker stop db93

 

컨테이너 삭제

컨테이너를 삭제하려면 다음 명령어를 입력합니다.

# 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

 

모든 컨테이너 삭제

모든 컨테이너를 삭제하려면 다음 명령어를 입력합니다.

# docker container prune

컨테이너 ID만 출력하는 명령어를 이용하여 모든 컨테이너를 삭제하려면 다음 명령어를 입력합니다.

# docker stop $(docker ps -a -q)
# docker rm $(docker ps -a -q)

profile
스타트업에서 동료들과 함께 공부하고 연구한 기술을 끄적끄적

0개의 댓글