devops/docker

[Docker] Docker 자주쓰는 명령어 정리

규턴이 2022. 10. 5. 17:17

docker info

 

도커에 대한 상세 정보

 

[root@kubemaster kubespray]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 22
  Running: 20
  Paused: 0
  Stopped: 2
 Images: 26
 Server Version: 18.09.7
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339
 runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-957.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 2.779GiB
 Name: kubemaster
 ID: MLOF:MCT6:7TY4:7FX6:ZID2:VCLO:LDXE:TZAO:KEIA:O5JW:TYBX:APJE
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  192.168.56.100:5000
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

 

여기서 실제 회사에서 중요한건 Insecure Registries와 내부 환경에서는 없지만 Registry Mirrors이다.

 

/etc/docker/daemon.json 에서 변경가능함 (참고 https://docs.docker.com/registry/insecure/)

 

즉 회사에서는 public docker registries를 사용하지 않을경우 사설 registry를 사용함

git pull시에는 mirror Registry

git push에는 Insecure Registry를 사용

 

 

docker ps

가장 많이 사용하는 명령어

 

$ docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
3516940c03f4        mongo:latest        "docker-entrypoint.s…"   16 hours ago        Up 16 hours         0.0.0.0:9001->27017/tcp   mongodb

// a옵션을 주게 된 경우 stop된 컨테이너도 확인할 수 있습니다.
$ docker ps -a

- 현재 생성된 컨테이너 확인

 

$ docker ps --no-trunc

CONTAINER ID       IMAGE               COMMAND                         CREATED             STATUS              PORTS                     NAMES
3516940c03..중략   mongo:latest        "docker-entrypoint.sh mongod"   16 hours ago        Up 16 hours         0.0.0.0:9001->27017/tcp   mongodb

- Command가 짤려서 나올때 사용하는 명령어

 

 

 

docker inspect

 

$ docker inspect <option> <image or container>

[

    {

        "Id": "8aadfb1607f5065070b96cbe5e4259312038cc0e53b2ba62e4ea9da805691574",

        "Created": "2016-05-18T07:16:27.598816826Z",

        "Path": "httpd-foreground",

        "Args": [],

        "State": {

            "Status": "running",

            "Running": true,

            "Paused": false,

            "Restarting": false,

            "OOMKilled": false,

            "Dead": false,

            "Pid": 4925,

            "ExitCode": 0,

            "Error": "",

            "StartedAt": "2016-05-18T07:20:00.233063636Z",

            "FinishedAt": "2016-05-18T07:19:49.731866179Z"

        },



.....(중략)

docker에서 image나 container에 대한 세부정보

ex) 실행여부, healthy check, state ,Args...

 

 

json으로 되어 있기에 원하는 정보만 가져올 경우

$ docker inspect -f "{{ .State }}" CONTAINER_ID

 

 

docker rm

# 컨테이너 ID 값으로 삭제
$ docker rm [CONTAINER_ID]

# 컨테이너 이름으로 삭제
$ docker rm [CONTAINER_NAME]


#컨테이너 강제 삭제
$ docker rm -f nginx2

# 이미지 ID 값으로 삭제
$ docker rmi [IMAGE_ID]

# 이미지 이름으로 삭제
$ docker rm [IMAGE_NAME]