docker命令(下)

容器操作

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值