Docker常用命令小记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker常用命令小记相关的知识,希望对你有一定的参考价值。
欢迎访问我的GitHub
本篇概览
- 除了基本的 docker pull 、 docker image 、 docker ps ,还有一些命令及参数也很重要,在此记录下来避免遗忘。
环境信息
- 以下是本次操作的环境:
- 操作系统:CentOS Linux release 7.7.1908
- Docker:19.03.2
- 假设当前环境正运行着两个容器,接下来的操作都基于这两个容器进行:
[root@vostro harbor]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11548ac31116 tomcat:9.0.26-jdk8-openjdk "catalina.sh run" 6 seconds ago Up 5 seconds 8080/tcp inspiring_ardinghelli
21c0499ccc76 nginx "nginx -g daemon of…" 29 minutes ago Up 29 minutes 80/tcp strange_zhukovsky
整体信息
- docker info 用来看整体信息:
[root@vostro harbor]# docker info
Client:
Debug Mode: false
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 19
Server Version: 19.03.2
Storage Driver: overlay
Backing Filesystem: xfs
Supports d_type: true
...
释放空间
- docker system prune 会删除以下内容: a. 已经停止的容器; b. 未被使用的网络; c. 所有未打标签的镜像; d. 构建镜像时产生的缓存;
- 注意: 此命令删除的东西过多,所以要慎用
- 删除已经停止的容器: docker container prune
- 删除未被使用的网络: docker network prune
- 删除没有Tag的镜像: docker image prune
- 删除没有容器的镜像: docker image prune -a
- 删除未被使用的数据卷: docker volume prune
过滤
- 执行 docker ps 的时候会列出所有运行状态的容器,有时我们只想看自己关注的,这时可以对结果做过滤:
- 按容器ID过滤: docker ps -f id=11548ac31116
[root@vostro harbor]# docker ps -f id=11548ac31116
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11548ac31116 tomcat:9.0.26-jdk8-openjdk "catalina.sh run" 4 minutes ago Up 4 minutes 8080/tcp inspiring_ardinghelli
- 按容器名称过滤: docker ps -f name=inspiring_ardinghelli
[root@vostro harbor]# docker ps -f name=inspiring_ardinghelli
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11548ac31116 tomcat:9.0.26-jdk8-openjdk "catalina.sh run" 7 minutes ago Up 7 minutes 8080/tcp inspiring_ardinghelli
- 按镜像过滤,这种过滤再细分有三种: a. 按镜像名和TAG过滤: docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk b. 按镜像ID过滤: docker ps -f ancestor=4965bfab1881 c. 按照镜像摘要信息过滤: docker ps -f ancestor=tomcat@sha256:67a9904e3ceb03abc50db7b374db7362f7e44d08a41488dd24c2bb14df8989a3
- 镜像的摘要信息如何获取呢?执行命令 docker inspect tomcat:9.0.26-jdk8-openjdk 可以获取镜像的详情,如下图所示,红框中就是摘要信息:
- 按容器状态过滤: docker ps -f status=running ,状态有这些:created, restarting, running, removing, paused, exited, dead
- 还有其他的过滤条件,不过不常用到,如下图:
信息获取
- 查看容器所占硬盘空间: docker ps -s
- 上图红框中就是容器资源占用情况, 508MB 表示:镜像大小+容器自身大小,40KB表示容器自身所占资源大小;
- 查看容器信息时只看某些字段,例如只看容器ID、镜像、容器名称这三列: docker ps --format "table .ID: .Image: .Names"
[root@vostro harbor]# docker ps --format "table .ID: .Image: .Names"
CONTAINER ID: IMAGE: NAMES
11548ac31116: tomcat:9.0.26-jdk8-openjdk: inspiring_ardinghelli
21c0499ccc76: nginx: strange_zhukovsky
- 下图展示了所有的列的名称:
- 如下图红框所示,当字段内容过长时,展示的是部分内容,如果想查看完整信息请使用 docker ps --no-trunc
- 在使用 docker history 命令查看镜像的构建信息时,也会因为内容过长而被省略,如下图,此时也能用 --no-trunc 参数看到被省略的信息:
组合使用
- 只显示Tomcat容器的ID字段: docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q
[root@vostro harbor]# docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q
11548ac31116
- 上面的命令可以得到Tomcat容器的ID字段,如果我们想停止该容器,将上述命令和 docker stop 组合起来使用即可: docker stop $(docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q)
[root@vostro harbor]# docker stop $(docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q)
11548ac31116
[root@vostro harbor]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11548ac31116 tomcat:9.0.26-jdk8-openjdk "catalina.sh run" About an hour ago Exited (143) 43 seconds ago inspiring_ardinghelli
21c0499ccc76 nginx "nginx -g daemon of…" 2 hours ago Up 2 hours 80/tcp strange_zhukovsky
-
可见tomcat容器已经停止。
-
以上是我日常工作中经常用到的docker命令,更多的信息请参考官方文档:https://docs.docker.com/engine/reference/commandline/docker/
欢迎关注51CTO博客:程序员欣宸
以上是关于Docker常用命令小记的主要内容,如果未能解决你的问题,请参考以下文章