DEV ℧ Developer Diary

[Docker] 도커 기본 명령어 (2) - ps, stop, rm..

해당 포스트는 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 createnetwork 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

docker1

##