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]