관리 메뉴

피터의 개발이야기

[Docker] Docker 기본 명령어 정리 본문

DevOps/Docker

[Docker] Docker 기본 명령어 정리

기록하는 백앤드개발자 2023. 8. 10. 15:39
반응형

ㅁ 개요

 docker 기본적인 명령어를 정리하였습니다.

 

ㅁ Docker 정보 조회

$ docker info

설치된 Docker에 대해 자세히 알고 싶을 때 사용하는 명령어이다.

 

ㅁ 컨테이너 목록 조회

$ docker ps [OPTION]
--all       -a  -- Show all containers
--before        -- Show only container created before...
--filter    -f  -- Filter values
--format        -- Pretty-print containers using a Go template
--help          -- Print usage
--last      -n  -- Show n last created containers (includes all states)
--latest    -l  -- Show only the latest created container
--no-trunc      -- Do not truncate output
--quiet     -q  -- Only show container IDs
--since         -- Show only containers created since...
--size      -s  -- Display total file sizes

 ㅇ 실행중인 컨테이너의 이미지, 상태, port, name정보를 확인 할 수 있습니다.

 

 

ㅁ 실행 중인 컨테이너 중지

$ docker stop [OPTIONS] CONTAINER [CONTAINER...]

Options:
  -t, --time int   Seconds to wait for stop before killing it (default 10)

 ㅇ 하나 이상의 컨테이너를 정지할 수 있습니다.  알면 해당 컨테이너를 중지시킬 수 있습니다.

 ㅇ time option을 주어 graceful shutdown을 할 수 있습니다.

 

 

ㅁ 컨테이너 제거하기

$ docker rm [OPTIONS] CONTAINER [CONTAINER...]

Remove one or more containers

Options:
  -f, --force     Force the removal of a running container (uses SIGKILL)
  -l, --link      Remove the specified link
  -v, --volumes   Remove anonymous volumes associated with the container

 

컨테이너의 ID를 통해 하나 이상의 컨테이너를 제거할 수 있습니다.

 ㅇ -f : 강제 종료

 ㅇ -l : 연결된 링크도 함께 삭제

 ㅇ -v: 마운트되었던 볼륨도 함께 삭제 

 

 ㅇ docker rm <TAB> 시 삭제할 수 있는 컨테이너의 목록을 확인할 수 있습니다.

 

 

ㅁ 이미지 목록 확인하기

$ docker images [OPTIONS] [REPOSITORY[:TAG]]

Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show image IDs

 ㅇ -a 옵션을 추가하면 숨겨있는 이미지도 모두 볼 수 있습니다.

 

 ㅇ -q 옵션은 Image Id만 출력됩니다.

 

ㅁ 이미지 PULL

Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Pull an image or a repository from a registry

Options:
  -a, --all-tags                Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --platform string         Set platform if server is multi-platform capable
  -q, --quiet                   Suppress verbose output
  
# MySQL8.0 이미지 다운로드 하기
$ docker pull mysql:8.0                                                                                                                                                                                                                             1 ↵  6470  14:33:57
8.0: Pulling from library/mysql
Digest: sha256:51c4dc55d3abf4517a5a652794d1f0adb2f2ed1d1bedc847d6132d91cdb2ebbf
Status: Downloaded newer image for mysql:8.0
docker.io/library/mysql:8.0

# 다운로드된 이미지 확인
$ docker images mysql                                                                                                                                                                                                                               1 ↵  6472  14:34:18
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mysql        8.0       2031a058d3ba   2 weeks ago     599MB  <=== 다운로드됨.
mysql        latest    2031a058d3ba   2 weeks ago     599MB
mysql        5.7       11d8667108c2   17 months ago   450MB

 

 

ㅁ 이미지 삭제

$ docker rmi mysql:8.0                                                                                                                                                                                                                                ✔  6473  14:34:39
Untagged: mysql:8.0

 ㅇ MySQL 8.0을 지워는 과정입니다.

 

 

ㅁ 컨테이너 로그 보기

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

 

# 최근 5 줄의 로그만 확인 시
$ docker logs  -n 5 grafana                                                                                                                                                                                                                           ✔  6478  14:40:09
t=2023-08-10T04:48:24+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=172.17.0.1 time_ms=7 size=0 referer=
t=2023-08-10T04:50:11+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=172.17.0.1 time_ms=1 size=0 referer=
t=2023-08-10T05:07:26+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=172.17.0.1 time_ms=10 size=0 referer=
t=2023-08-10T05:15:59+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=172.17.0.1 time_ms=8 size=0 referer=
t=2023-08-10T05:18:12+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=172.17.0.1 time_ms=4 size=0 referer=

# 실시간 로그 계속 보기
$ docker logs -f grafana

 

 

ㅁ  컨테이너에 접속하기

# grafana 컨테이너에 접속함.
$ docker exec -it grafana sh
/usr/share/grafana $ ps -ef
PID   USER     TIME  COMMAND
    1 grafana   9:35 grafana-server --homepath=/usr/share/grafana --config=/etc/grafana/grafana.ini --packaging=docker cfg:default.log.mode=console cfg:default.paths.data=/var/lib/grafana cfg:default.paths.logs=/var/log/grafana cfg:default.paths.plugins=/var/lib/grafan
   19 grafana   3:36 /var/lib/grafana/plugins/redis-datasource/redis-datasource_linux_arm64
   40 grafana   0:00 sh
   46 grafana   0:00 ps -ef

현재 실행중인 grafana에 접속하는 방법입니다. 서버 접속하여 패키지 설치 및 다양한 프로세스 실행을 할 수 있습니다.

 

반응형
Comments