容器操作
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