docker命令(下)

我吐了。。。發表於2020-11-23

容器操作

docker ps

# ps用於輸出容器列表
$ docker ps <選項>

# 選項
-a, --all=false 列出所有容器,不帶-a則輸出當前正在執行的容器。
--before="" 列出特定容器建立前的容器,包含停止的容器。
-f, --filter=[] 設定輸出過濾
-l, --latest=false 列出最後建立的容器包含停止的容器
-q, --quiet=false 只輸出容器的ID

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

docker top

# top使用者顯示容器中正在 執行的程式資訊
$ docker top <容器名稱, id><ps選項>

$ docker top

docker attach

# attach 用於將標準輸入與標準輸出連線到正在執行的容器
$ docker attach <選項><容器名稱, id>

docker logs

# logs用於獲取容器的日誌
$ docker logs [選項] <容器名稱,id>

# 選項
-f 跟蹤日誌輸出
--since 顯示某個開始時間的所有日誌
-t 顯示時間戳
--tail 僅僅列出最新n條容器日誌

# 跟蹤檢視test容器的日誌
$ docker logs -f test

# 檢視test容器從2019年4月1日以後的最新10條日誌
$ docker logs --since="2019-04-01" --tail=10 test

如何動態跟蹤並檢視myswoft容器的日誌詳情呢?

docker@ ~$: docker logs -tf --details myswoft

如何清理日誌檔案呢?

Docker日誌預設儲存位於:/var/lib/docker/containers//*.log

# 在docker中切換為root使用者
docker@default: ~$ su -i

# 檢視docker容器的id
root@default: ~$ docker ps -a | grep myswoft
d26ff0ff1bc0        swoft/swoft         "php /var/www/swoft/…"   2 weeks ago         Up 22 minutes       0.0.0.0:80->80/tcp                  myswoft

# 檢視容器日誌檔案大小
root@default: ~$ ls -lh  $(find /var/lib/docker/containers/ -name *-json.log)
-rw-r-----    1 root     root           0 May 14 13:32 /var/lib/docker/containers/d26ff0ff1bc0dc0221ce5be7f78da96123a0ddbb379ab8befd2d1403f44e820b/d26ff0ff1bc0dc0221ce5be7f78da96123a0ddbb379ab8befd2d1403f44e820b-json.log

# 進入日誌目錄
root@default: ~$ cd /var/lib/docker/containers/d26ff0ff1bc0dc0221ce5be7f78da96123a0ddbb379ab8befd2d1403f44e820b

# 臨時清理日誌檔案
root@default: /var.../$ truncate -s 0 /var/lib/docker/containers/<container_id>/*-json.log

# 臨時清理日誌檔案
root@default: /var../$ cat /dev/null > *-json.log

# 使用rm刪除日誌檔案後是需要重啟容器的,如果容器執行狀態下Linux程式會引用著不會釋放磁碟空間。
root@default /var/.../$ rm -rf *-json.log

docker port

# port用於列出指定容器的埠對映,或者用於查詢將PRIVATE_PORT NAT到面向公眾的埠。
$ docker port [選項] <容器名稱,id> [PRIVATE_PORT[/PROTO]]

# 檢視test容器的埠對映情況
$ docker port test

映象倉庫

docker search

# search用於在docker hub中搜尋映象
$ docker search <選項><搜尋關鍵詞>

# 選項
--automated=false 只顯示由docker hub的automated build建立的映象
--no-trunc=false 顯示所有因內容過長而省略的部分
-s, --stars=0 顯示有特定星級以上的映象

本地映象

docker images

# images用於輸出映象列表
$ docker images <選項><映象名稱, id>

# 選項
-a, --all=false 列出所有映象包含父映象。
-f, --filter=[] 設定輸出結果過濾,若設定為dangling=true則僅輸出無名映象。
--no-trunc=false 顯示所有因內容過長而省略的部分

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

docker rmi

# rmi 用於刪除映象,若沒有指定標籤則會刪除latest標籤。
$ docker rmi <註冊名稱>/<映象名稱, id>:<標籤>

# 選項
-f, --force=false 強制刪除映象
--no-prune=false 不刪除不帶標籤的父級映象

# 刪除所有映象
$ docker rmi `docker images -aq`

docker tag

# tag用於設定映象標籤
$ docker tag <選項><映象名稱>:<標籤><註冊地址, 使用者名稱>/<映象名稱>:<標籤>

# 選項
- f, --force=false 強制設定,即使已擁有標籤,如遠端倉庫設定標籤。

若不設定-o選項,tar包檔案會輸出到標準輸出,所以必須設定重定向。如果僅指定映象名稱但沒有指指定標籤,則會將所有標籤都儲存到一個tar包檔案中。

資訊檢視

docker info

# info用於顯示當前系統資訊、docker容器和映象數量、設定等資訊。
$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 18.09.5
Storage Driver: overlay2
 Backing Filesystem: extfs
 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: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.14.111-boot2docker
Operating System: Boot2Docker 18.09.5 (TCL 8.2.1)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 989.4MiB
Name: default
ID: 7ST2:CIQM:GLVF:AUF2:QFKR:N2LB:FSO7:V6UJ:5IFN:MQVZ:WK7L:TGSS
Docker Root Dir: /mnt/sda1/var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
 provider=virtualbox
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

docker version

# version使用者輸出docker的版本資訊
$ docker version
Client:
 Version:       18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24302
 Built: Fri Mar 23 08:31:36 2018
 OS/Arch:       windows/amd64
 Experimental:  false
 Orchestrator:  swarm

Server: Docker Engine - Community
 Engine:
  Version:      18.09.5
  API version:  1.39 (minimum version 1.12)
  Go version:   go1.10.8
  Git commit:   e8ff056dbc
  Built:        Thu Apr 11 04:50:00 2019
  OS/Arch:      linux/amd64
  Experimental: false

相關文章