DevOps/Docker

[Docker] 2. Docker 명령어

hyomee2 2024. 11. 20. 21:31

Docker 설치 후 Docker Hub에 가입을 한다.

아래 명령어로 Docker가 설치되었는지 확인할 수 있다.

docker version

Docker 관련 명령어

1. Docker 도움말

docker help

2. Docker 명령어 상세 사용방법 확인하기

docker search --help

image 관련 명령어

1. 원격 저장소에서 image 다운로드하기

# 축약형
docker pull <이미지 이름> # 버전을 붙이지 않으면 가장 최신의 것이 다운로드 된다.
docker pull hello-world  # 원격 저장소에서 hello-world라는 이름의 docker image를 다운

# 풀명령어
docker image pull <이미지 이름> # 버전을 붙이지 않으면 가장 최신의 것이 다운로드 된다.
docker image pull hello-world  # 원격 저장소에서 hello-world라는 이름의 docker image를 다운

2. 내가 다운로드한 image 리스트 확인하기

docker images  # 얘는 축약형이고 docker images ls가 풀 명령어이다.

3. image 삭제하기

해당 image를 기반으로 만들어진 container가 있다면, 그 컨테이너가 모두 삭제되어 있어야 삭제가 가능하다.

(container을 먼저 지우고 image를 지워야 한다.)

docker rmi <image이름>
docker rmi hello-world

4. image 검색하기

Docker hub 웹에서 검색도 가능하다.

docker search <image 이름>
docker search ubuntu

container 관련 명령어

1. 로컬에 저장된 image로 container 생성 후 실행하기

# 축약형
docker run <이미지 이름> 
docker run hello-world  # hello-world image 구동(container화)

# 풀명령어([]은 옵션, <>는 필수)
docker container run [옵션] <이미지 이름> [container 이름]

# it 옵션 (실행중인 container의 터미널 이용가능)
docker container run -it --name ubuntu_test2 ubuntu
# ubuntu image로 ubuntu가 구동가능한 container를 만들면서 그 안의 터미널에 진입한다. 
#(실행중인 container 내부로 진입)
# 터미널 진입 후 exit를 입력하면 container을 종료하고 나오게 되는데, 종료하지 않고 나오고 싶을 경우에는 ctrl p q를 누른다.

# 하나의 image에 서로 다른 이름을 부여하면, 서로 다른 이름을 가진 container가 생성된다.
docker container run -d --name ubuntu_test ubuntu 
docker container run -d --name ubuntu_test2 ubuntu

# 실행중인 container 내부로 진입하기
docker attach <container 이름>
docker attach ubuntu_test2

run 명령어는 pull 명령이 포함되어 있어서

container를 생성할 image가 존재하지 않으면 docker hub에서 pull한 뒤 run 명령을 실행하게 된다.

(image가 존재하면 바로 run 명령을 실행한다.)

따라서 pull을 하지 않고 run해도 된다.

(1) 옵션

옵션 설명
-d 백그라운드로 실행한다.
-p 외부포트:컨테이너포트포트를 지정하지 않는 경우 임의의 포트가 자동으로 할당된다.
-t 유닉스 터미널 연결 활성화를 시킨다.
-i 옵션과 같이 많이 사용되며 -it 옵션으로 합쳐서 실행한다.
-i 컨테이너 쪽 표준 입력(stdout)과 연결을 유지한다.
컨테이너 쪽 셸에 들어가려면 이 옵션을 추가해야 한다.
-rm 컨테이너 생성 시 --rm 옵션 부여하면
컨테이너가 종료 시 컨테이너가 자동 파기된다.
--name 컨테이너에 원하는 이름을 붙일 수 있다.
name을 부여하지 않고 컨테이너를 생성하면 랜덤한 이름이 생성된다.

2. 실행중인 container 리스트 확인하기

# 실행중인 container 확인하기
docker ps

# 모든 container 리스트 확인하기 (종료된 container도 확인 가능) 
docker ps -a

hello-world image를 기반으로 한 container가 만들어진 것을 확인할 수 있다.

상태는 중지된 상태(Exited)이며, 컨테이너 생성 시 이름을 지정해주지 않으면 임의로 이름이 붙는다.

3. container 실행 시 이름 부여하기

# 축약형
docker run --name <container 이름> <이미지명>
docker run --name hello hello-world

# 풀 명령어
docker container run -d --name <container 이름> <이미지명>

4. container 중지/시작하기

# container 중지하기
docker container stop <container 아이디>  # container 아이디는 식별가능한 정도(3글자 정도)만 입력해주면 된다.

# container 시작하기
docker container start <container 아이디>

# container 재시작하기
 docker container restart <container 아이디 | container 이름>

 

 

5. container 삭제하기

Container가 중지된 경우에만 삭제할 수 있다.

docker rm <container 이름>
docker rm great_bartik

# 강제로 container 지우기(container가 실행중일 경우 등)
docker container rm -f <container 이름>
docker container rm -f great_bartik

운용 관련 명령어

1. Container 또는 image 파기하기

# 현재 실행중이지 않은 모든 container 삭제
docker container prune

# 태그가 붙지 않은 모든 image 삭제하기
docker image prune

# 태그가 없는 image, container, 볼륨, 네트워크 등 모든 리소스 일괄 삭제하기
docker system prune

2. Container 시스템 리소스 사용 현황 확인하기

현재 실행 중인 container가 있다면 실시간으로 리소스 사용 현황을 확인할 수 있다.

docker container stats <container 이름>

 

'DevOps > Docker' 카테고리의 다른 글

[Docker] 3. image 만들기  (1) 2024.11.25
[Docker] 1. Docker 개요  (0) 2024.11.20