
Docker 명령어 정리INFRA/Doker2024. 7. 28. 23:35
Table of Contents
커널 버전 확인
root@docker:~# uname -r
6.5.0-41-generic
메모리 현황 확인
root@docker:~# free -h
총계 사용 여분 공유 버퍼/캐시 가용
메모리: 3.8Gi 716Mi 1.9Gi 34Mi 1.2Gi 2.9Gi
스 왑: 3.8Gi 0B 3.8Gi
현재 메모리 사이즈
root@docker:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 74.2M 1 loop /snap/core22/1122
loop2 7:2 0 266.6M 1 loop /snap/firefox/3836
loop3 7:3 0 497M 1 loop /snap/gnome-42-2204/141
loop4 7:4 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop5 7:5 0 12.3M 1 loop /snap/snap-store/959
loop6 7:6 0 40.4M 1 loop /snap/snapd/20671
loop7 7:7 0 452K 1 loop /snap/snapd-desktop-integration/83
loop8 7:8 0 38.8M 1 loop /snap/snapd/21759
loop9 7:9 0 74.2M 1 loop /snap/core22/1380
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 513M 0 part /boot/efi
└─sda3 8:3 0 49.5G 0 part /var/snap/firefox/common/host-hunspell
/
sr0 11:0 1 1024M 0 rom
cpu 용량
root@docker:~# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 39 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i5-10400 CPU @ 2.90GHz
CPU family: 6
Model: 165
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
Stepping: 3
BogoMIPS: 5807.99
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse ss
e2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_fre
q pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervis
or lahf_lm abm 3dnowprefetch invpcid_single fsgsbase bmi1 avx2 bmi2 invpcid rdseed clflushopt a
rat md_clear flush_l1d arch_capabilities
Virtualization features:
Hypervisor vendor: KVM
Virtualization type: full
Caches (sum of all):
L1d: 64 KiB (2 instances)
L1i: 64 KiB (2 instances)
L2: 512 KiB (2 instances)
L3: 24 MiB (2 instances)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0,1
Vulnerabilities:
Gather data sampling: Unknown: Dependent on hypervisor status
Itlb multihit: KVM: Mitigation: VMX unsupported
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Mmio stale data: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Retbleed: Vulnerable
Spec rstack overflow: Not affected
Spec store bypass: Vulnerable
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Retpoline
Srbds: Unknown: Dependent on hypervisor status
Tsx async abort: Not affected
os 버전 확인
root@docker:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="<https://www.ubuntu.com/>"
SUPPORT_URL="<https://help.ubuntu.com/>"
BUG_REPORT_URL="<https://bugs.launchpad.net/ubuntu/>"
PRIVACY_POLICY_URL="<https://www.ubuntu.com/legal/terms-and-policies/privacy-policy>"
UBUNTU_CODENAME=jammy
컨테이너 이미지 삭제
# docker rmi 이미지 이름
# docker rmi -f 이미지 이름
컨테이너 삭제
# docker rm 컨테이너이름 (삭제가 안되는 경우 : 운영중인 컨테이너는 삭제가 안된다.)
# docker rm -f 컨테이너이름
- 컨테이너가 없으면 이미지가 한번에 삭제됨
root@docker:~# docker rm -f web
web
root@docker:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest dde0cca083bc 3 weeks ago 188MB
root@docker:~# docker rmi nginx
Untagged: nginx:latest
Untagged: nginx@sha256:56b388b0d79c738f4cf51bbaf184a14fab19337f4819ceb2cae7d94100262de8
Deleted: sha256:dde0cca083bc75a0af14262b1469b5141284b4399a62fef923ec0c0e3b21f5bc
Deleted: sha256:1387079e86adf524e7e92bada71d261d9ff58f34409751ab36560385262a8386
root@docker:~# docker images
전체 삭제 → 트러블 슈팅시 참고
# docker rm $(docker ps -a -q) : 전체 모든 컨테이너를 삭제한다.
# docker rm -f $(docker ps -a -q) : 전체 모든 컨테이너를 강제적으로 삭제한다.
# docker rm stop $(docker ps -a -q) : 전체 돌고 있는 컨테이너를 중지한다.
# docker rmi $(docker images -q) : 전체 컨테이너이미지를 삭제한다.
# docker rmi -f $(docker images -q) : 전체 컨테이너이미지를 강제 삭제한다.
root@docker:~# docker rm -f $(docker ps -a -q)
8b23171b02da
155012f16354
e4eea171b2fc
a020de840e4e
root@docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@docker:~# docker rmi $(docker images -q)
~~생략~~ 다 삭제됨
컨테이너 이미지에 대한 상세정보
root@docker:~# docker history 9b6
IMAGE CREATED CREATED BY SIZE COMMENT
9b6f08c39533 35 hours ago CMD ["mysqld"] 0B buildkit.dockerfile.v0
<missing> 35 hours ago EXPOSE map[3306/tcp:{} 33060/tcp:{}] 0B buildkit.dockerfile.v0
<missing> 35 hours ago ENTRYPOINT ["docker-entrypoint.sh"] 0B buildkit.dockerfile.v0
컨테이너 안으로 들어가는 명령어 2가지
docker exec -it 컨테이너이름 bash
docker exec -it 컨테이너이름 /bin/bash
컨테이너 및 이미지에 대한 상세한 정보를 표시
# docker inspect
컨테이너 로그 보기
root@docker:~# docker logs webserver1
--follow 실시간
root@docker:~# docker logs -f webserver1
--시간까지 찍힘
root@docker:~# docker logs -t webserver1
2024-06-21T02:15:48.630886305Z /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
~~생략~~
2024-06-21T02:15:48.653819288Z 2024/06/21 02:15:48 [notice] 1#1: start worker process 29
2024-06-21T02:15:48.653980295Z 2024/06/21 02:15:48 [notice] 1#1: start worker process 30
이미지 풀네임 확인
root@docker:~# docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1:5000/ubuntu v1.0 sha256:5f5250218d28ad6612bf653eced407165dd6475a4daf9210b299fed991e172e9 2 weeks ago 72.8MB
127.0.0.1:5000/ubutu v1.0 sha256:5f5250218d28ad6612bf653eced407165dd6475a4daf9210b299fed991e172e9 2 weeks ago 72.8MB
nginx latest sha256:dde0cca083bc75a0af14262b1469b5141284b4399a62fef923ec0c0e3b21f5bc 3 weeks ago 188MB
registry 2 sha256:6a3edb1d5eb6923955548ab7f391e5cc2f04e929c3d32447a7480d8b7a87a0b2 8 months ago 25.4MB
top Docker 컨테이너 내에서 실행 중인 프로세스
root@docker:~# docker top webserver1
UID PID PPID C STIME TTY TIME CMD
root 50935 50911 0 11:15 ? 00:00:00 nginx: master process nginx -g daemon off;
systemd+ 50977 50935 0 11:15 ? 00:00:00 nginx: worker process
systemd+ 50978 50935 0 11:15 ? 00:00:00 nginx: worker proces
create로 만들면 스타트 안됨 그래서 run을 쓰는 것
root@docker:~# docker create --name webserver1 nginx
root@docker:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1:5000/ubutu v1.0 5f5250218d28 2 weeks ago 72.8MB
nginx latest dde0cca083bc 3 weeks ago 188MB
registry 2 6a3edb1d5eb6 8 months ago 25.4MB
root@docker:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
235408ac42f9 nginx "/docker-entrypoint.…" 32 seconds ago Created webserver1
292ce2198064 127.0.0.1:5000/ubutu:v1.0 "/bin/bash" 15 minutes ago Exited (0) 15 minutes ago ubuntu
7f4598760ab7 registry:2 "/entrypoint.sh /etc…" 37 minutes ago Up 37 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
09c317fdab92 4cbc9511745c "usr/sbin/apache2ctl…" 19 hours ago Exited (137) 2 hours ago nodejs_test
root@docker:~# docker start webserver1
webserver1
root@docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
235408ac42f9 nginx "/docker-entrypoint.…" About a minute ago Up 3 seconds 80/tcp webserver1
7f4598760ab7 registry:2 "/entrypoint.sh /etc…" 37 minutes ago Up 37 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
run
- pull + create + start
- 만약 로컬에 이미지가 없다면, 이미지를 pull하고 + 컨테이너를 만들고 + 시작까지 한꺼번에 해준다
root@docker:~# docker run -d --name webserver01 -p 80:80 nginx:1.14
Unable to find image 'nginx:1.14' locally
1.14: Pulling from library/nginx
27833a3ba0a5: Already exists
0f23e58bd0b7: Already exists
8ca774778e85: Already exists
^[[ADigest: sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Status: Downloaded newer image for nginx:1.14
155012f16354d206642fd0f129ac6dcae6a8abf4bfcc5e8576a05a8ca2f64387
root@docker:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.14 295c7be07902 5 years ago 109MB
root@docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
155012f16354 nginx:1.14 "nginx -g 'daemon of…" 10 seconds ago Up 9 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp webserver01
잘못된 이름을 가진 이미지를 올바른 이름으로 태그
docker tag 127.0.0.1:5000/ubutu:v1.0 127.0.0.1:5000/ubuntu:v1.0
도커 컨테이너 라이프 사이클
- 원래 삭제시키려면 stop하고 삭제해야하는데 그냥 삭제하는 것
- 컨테이너 실행 종료 후 자동 삭제 --rm
- 이름 적지 않으면 랜덤으로 생성됨
root@docker:~# clear
root@docker:~# docker run -d --rm --name web1 nginx:1.14
Unable to find image 'nginx:1.14' locally
1.14: Pulling from library/nginx
27833a3ba0a5: Pull complete
0f23e58bd0b7: Pull complete
8ca774778e85: Pull complete
Digest: sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Status: Downloaded newer image for nginx:1.14
0b01cb6e17fbcd0522afc9b3ff88233d103927f163aef3ddd983414d5031e834
root@docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b01cb6e17fb nginx:1.14 "nginx -g 'daemon of…" 8 seconds ago Up 7 seconds 80/tcp web1
235408ac42f9 nginx "/docker-entrypoint.…" 10 minutes ago Up 9 minutes 80/tcp webserver1
7f4598760ab7 registry:2 "/entrypoint.sh /etc…" 46 minutes ago Up 46 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
root@docker:~# docker stop web1
web1
root@docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
235408ac42f9 nginx "/docker-entrypoint.…" 10 minutes ago Up 9 minutes 80/tcp webserver1
7f4598760ab7 registry:2 "/entrypoint.sh /etc…" 47 minutes ago Up 47 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
root@docker:~#
root@docker:~# docker run -d nginx:1.15
Unable to find image 'nginx:1.15' locally
1.15: Pulling from library/nginx
743f2d6c1f65: Pull complete
6bfc4ec4420a: Pull complete
688a776db95f: Pull complete
Digest: sha256:23b4dcdf0d34d4a129755fc6f52e1c6e23bb34ea011b315d87e193033bcd1b68
Status: Downloaded newer image for nginx:1.15
d8e573c5c4a55669ff9bfc191802ea434336979a9fbe9b9ba5450409361905c2
root@docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8e573c5c4a5 nginx:1.15 "nginx -g 'daemon of…" 5 seconds ago Up 4 seconds 80/tcp gifted_wu
235408ac42f9 nginx "/docker-entrypoint.…" 11 minutes ago Up 10 minutes 80/tcp webserver1
7f4598760ab7 registry:2 "/entrypoint.sh /etc…" 48 minutes ago Up 48 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
컨테이너 일시중지
root@docker:~# docker pause webserver1
webserver1
root@docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8e573c5c4a5 nginx:1.15 "nginx -g 'daemon of…" About a minute ago Up About a minute 80/tcp gifted_wu
235408ac42f9 nginx "/docker-entrypoint.…" 13 minutes ago Up 12 minutes (Paused) 80/tcp webserver1
7f4598760ab7 registry:2 "/entrypoint.sh /etc…" 50 minutes ago Up 50 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
root@docker:~# docker unpause webserver1
webserver1
root@docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8e573c5c4a5 nginx:1.15 "nginx -g 'daemon of…" About a minute ago Up About a minute 80/tcp gifted_wu
235408ac42f9 nginx "/docker-entrypoint.…" 13 minutes ago Up 12 minutes 80/tcp webserver1
7f4598760ab7 registry:2 "/entrypoint.sh /etc…" 50 minutes ago Up 50 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
events 확인
- stop 명령어와 다르게 kill 명령어는 강제로 정지 한 것이기 때문에 기록이 뜨지 않는다.
정지되어 있는 모든 컨테이너 삭제
root@docker:~# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N]
실행 중인 컨테이너와 정지 되어 있는 컨테이너 전부 삭제
root@docker:~# docker rm -f $(docker ps -a -q);docker container prune
7eb02e9d0737
d8e573c5c4a5
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
root@docker:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
엔트리 포인트 커맨드
- 커맨드를 실행한 후 엔트리포인트도 실행해라
FROM ubuntu:18.04
ENTRYPOINT ["echo"]
CMD ["Hello, World!"]
컨테이너 환경변수 확인
root@docker:~# docker exec 7e env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=7eb02e9d0737
NGINX_VERSION=1.14.2-1~stretch
NJS_VERSION=1.14.2.0.2.6-1~stretch
HOME=/root
용량 얼마나 차지하는지 확인
root@docker:~# df -h
파일 시스템 크기 사용 가용 사용% 마운트위치
tmpfs 391M 1.6M 390M 1% /run
/dev/sda3 49G 18G 29G 38% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 512M 6.1M 506M 2% /boot/efi
tmpfs 391M 100K 391M 1% /run/user/1000
-- -v옵션주면 상세정보 확인 가능
root@docker:~# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 9 0 1.244GB 1.244GB (100%)
Containers 0 0 0B 0B
Local Volumes 2 0 251MB 251MB (100%)
Build Cache 62 0 179.1MB 179.1MB
디스크 사용량 : 메모리 cpu root 디렉터리 정보
root@docker:~# docker system info
Client: Docker Engine - Community
Version: 26.1.4
Context: default
Debug Mode: false
CPUs: 2
Total Memory: 3.816GiB
Name: docker
ID: b098db7f-54f2-4b16-aab8-216344c64431
Docker Root Dir: /var/lib/docker
Debug Mode: false
Username: sinhye
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: fals
Docker 시스템에서 사용되지 않는 모든 데이터를 정리
- 이미지, 컨테이너, 네트워크 정보 모든것 다 정리..보통 hdd가 다 찼을 경우 가비지 데이터 다 날리며 사용
- -a 옵션 모두 삭제 → 최후의 보류..
root@docker:~# docker system prune
현재 운영중인 컨테이너 실시간 정보
root@docker:~# docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
43b24f95ae86 compassionate_davinci 0.00% 876KiB / 3.816GiB 0.02% 2.8kB / 0B 0B / 0B 1
41bc96cdf64a hungry_chandrasekhar 0.00% 3.074MiB / 3.816GiB 0.08% 3.06kB / 0B 0B / 12.3kB 3
현재 사용하고 있지않은 이미지 보여주고 삭제
root@docker:~# docker builder prune -f ==docker buildx prune -f
ID RECLAIMABLE SIZE LAST ACCESSED
p3oaado45rzky9xdrp3i0r7c8* true 0B 26 minutes ago
e73msqvfwy23efnxb0j1qpgrc true 1.071kB 3 days ago
brn72aol2yh9b4ohsrmflpvsn* true 5.515kB 26 minutes ago
--생략--
6mlgjdgvvsyu58fwdbxwomz1d true 0B Less than a second ago
Total: 179.1MB
압축
root@docker:~# docker save -o ubuntu:focal.tar ubuntu:focal
root@docker:~# ls
dockerfile dockerfolder index.html install-docker.sh snap ubuntu:focal.tar
--이미지를 지웠다
root@docker:~# docker rmi -f 5f5
root@docker:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
--압축해둔거 푸으면
root@docker:~# docker load -i ubuntu\\:focal.tar
3ec3ded77c0c: Loading layer [==================================================>] 75.19MB/75.19MB
Loaded image: ubuntu:focal
--이미지다시생김~!!!!!!!
root@docker:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu focal 5f5250218d28 2 weeks ago 72.8MB
--myimage 빌드를한다. MyDockerfile/custom에 있는 도커파일로 현재디렉터리에서
docker build -t myimage:latest -f MyDockerfile/custom ./
'INFRA > Doker' 카테고리의 다른 글
Docker image 경량화 (0) | 2024.07.29 |
---|---|
Docker Image registry : pravate, hub.docker.com (0) | 2024.07.29 |
Docker 구성요소 / 접근 방법 (0) | 2024.07.28 |