[Docker] 도커 기본 명령어 (2) - ps, stop, rm..
25 Jan 2023해당 포스트는 inflearn에서 subicura님의 초보를 위한 도커 안내서의 강의를 듣고 정리한 문서입니다.
도커 기본 명령어 (2)
ps - 실행중인 컨테이너 목록 조회
실행중인 컨테이너 목록을 확인하는 명령어 입니다.
아래와 같이 실행중인 컨테이너 정보가 출력됩니다.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad2394f3f6b7 redis "docker-entrypoint.s…" 30 seconds ago Up 30 seconds 0.0.0.0:1234->6379/tcp goofy_poincare
28a95e039430 wordpress "docker-entrypoint.s…" 30 hours ago Up 30 hours 0.0.0.0:8080->80/tcp unruffled_mcclintock
e49b2a199e6e mysql:5.7 "docker-entrypoint.s…" 30 hours ago Up 30 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
아래와 같이 -a
옵션을 추가하면 중지된 컨테이너도 같이 포함되어 조회됩니다.
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad2394f3f6b7 redis "docker-entrypoint.s…" 30 seconds ago Up 30 seconds 0.0.0.0:1234->6379/tcp goofy_poincare
f8f3c0be8686 centos:8 "/bin/bash" 30 seconds ago Exited (0) 29 seconds ago eloquent_mcclintock
744cfc6ed006 ubuntu "bash" About a minute ago Exited (0) About a minute ago jolly_mcclintock
28a95e039430 wordpress "docker-entrypoint.s…" 30 hours ago Up 30 hours 0.0.0.0:8080->80/tcp unruffled_mcclintock
e49b2a199e6e mysql:5.7 "docker-entrypoint.s…" 30 hours ago Up 30 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
stop - 실행중인 컨테이너 중지
실행중인 컨테이너를 중지하는 명령어 입니다.
실행중인 컨테이너를 하나 또는 여러개 (띄어쓰기) 중지할 수 있습니다.
docker stop [OPTION] CANTAINER [CONTAINER(CONTAINER ID OR NAMES)...]
현재 실행중인 컨테이너중 redis를 종료하고자 한다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad2394f3f6b7 redis "docker-entrypoint.s…" 30 seconds ago Up 30 seconds 0.0.0.0:1234->6379/tcp goofy_poincare
아래와 같이 CONTAINER ID나 NAMES를 입력해서 종료시켜주면된다.
# 방법 1
docker stop ad2394f3f6b7
# 방법 2
docker stop goofy_poincare
rm - 종료된 컨테이너 제거
종료된 컨테이너를 완전히 제거하는 명령어 입니다.
stop 명령어와 동일하게, CONTAINER ID나 NAMES를 입력해 제거합니다.
docker rm [OPTION] CANTAINER [CONTAINER(CONTAINER ID OR NAMES)...]
logs - 컨테이너 로그 확인
컨테이너의 로그를 확인합니다. 컨테이너가 정상적으로 동작하는지 확인하는 방법은 로그를 확인하는 것입니다.
docker logs [OPTIONS] CONTAINER
[OPTIONS]
옵션 | description |
---|---|
-f | 실시간 로그확인 |
–tail [n] | 마지막 n줄 로그 출력 |
images - 다운로드한 이미지 목록 조회
도커에서 다운로드한 이미지의 목록을 조회하는 명령어 입니다.
docker images [OPTIONS] [REPOSITORY[:TAG]]
PS C:\WINDOWS\system32> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 19c51d4327cf 7 days ago 117MB
wordpress latest fcd4967b9728 13 days ago 615MB
ubuntu 20.04 d5447fc01ae6 6 weeks ago 72.8MB
centos 8 5d0da3dc9764 16 months ago 231MB
hashicorp/http-echo latest a6838e9a6ff6 5 years ago 3.97MB
pull - 이미지 다운로드
도커 이미지를 다운로드 받는 명령어 입니다.
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
아래와 같이 필요한 이미지를 입력해 다운받습니다.
docker pull centos:8
rmi - 이미지 삭제
다운로드한 이미지를 삭제합니다. docker images
를 통해 조회한 이미지 목록에서 IMAGE ID를 입력하면 삭제가 됩니다.
단, 컨테이너가 실행중인 이미지는 삭제되지 않습니다.
docker rmi [OPTIONS] IMAGE [IMAGE...]
network create - 도커 컨테이너 가상네트워크 생성
도커 컨테이너끼리 이름으로 통신할 수 있는 가상 네트워크를 만듭니다.
docker network create [OPTIONS] NETWORK
network connect - 컨테이너애 가상네트워크 연결(추가)
기존에 생성된 컨테이너에 네트워크를 추가합니다.
docker network connect [OPTIONS] NETWORK CONTAINER
network create
와 network connect
를 이용해 전 포스트에서 host.docker.internal
를 통해 연결한 mysql과 wordpress를 가상네트워크를 만들어 연결해보자.
먼저 app-network 라는 이름으로 workpress와 mysql이 통신할 네트워크를 만들어 줍니다.
docker network create app-network
이후 mysql의 컨테이너에 app-network로 이름지은 가상 네트워크를 추가해줍니다.
docker network connect app-network mysql
워드프레스의 환경변수중 WORD_DB_HOST 부분을 mysql에 연결한 가상 네트워크로 변경하고 다시 wordpress를 실행 시켜 봅시다.
워드프레스의 컨테이너가 실행중일경우 종료하고 다시 실행 시켜줍니다.
docker run -d -p 8080:80 --network=app-network -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_NAME=wp -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wp wordpress
##