【这些都不知道你就是个弟弟】Docker常用命令

戳蓝字“CSDN云计算”关注我们哦!
640?wx_fmt=jpeg
作者 | 程序员欣宸
转自 | 企业博客
责编 | 阿秃

除了基本的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会删除以下内容:

  • 已经停止的容器;
  • 未被使用的网络;
  • 所有未打标签的镜像;
  • 构建镜像时产生的缓存;

注意:此命令删除的东西过多,所以要慎用

  • 删除已经停止的容器:docker container prune
  • 删除未被使用的网络:docker network prune
  • 删除没有Tag的镜像:docker image prune
  • 删除没有容器的镜像:docker image prune -a
  • 删除未被使用的数据卷:docker volume prune

过滤

执行docker ps的时候会列出所有运行状态的容器,有时我们只想看自己关注的,这时可以对结果做过滤:
 
1、按容器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

2、按容器名称过滤: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

3、按镜像过滤,这种过滤再细分有三种:

  • 按镜像名和TAG过滤:docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk
  • 按镜像ID过滤:docker ps -f ancestor=4965bfab1881
  • 按照镜像摘要信息过滤: docker ps -f ancestor=tomcat@sha256:67a9904e3ceb03abc50db7b374db7362f7e44d08a41488dd24c2bb14df8989a3
 
镜像的摘要信息如何获取呢?执行命令docker inspect tomcat:9.0.26-jdk8-openjdk可以获取镜像的详情,如下图所示,红框中就是摘要信息:
       640?wx_fmt=png       
4、按容器状态过滤:docker ps -f status=running,状态有这些:created, restarting, running, removing, paused, exited, dead

5、还有其他的过滤条件,不过不常用到,如下图:
        640?wx_fmt=png        
信息获取

1、查看容器所占硬盘空间:docker ps -s
       640?wx_fmt=png      
上图红框中就是容器资源占用情况,508MB表示:镜像大小+容器自身大小,40KB表示容器自身所占资源大小。

2、查看容器信息时只看某些字段,例如只看容器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
 
下图展示了所有的列的名称:
       640?wx_fmt=png      
3. 如下图红框所示,当字段内容过长时,展示的是部分内容,如果想查看完整信息请使用docker ps --no-trunc

640?wx_fmt=jpeg
 
4. 在使用docker history命令查看镜像的构建信息时,也会因为内容过长而被省略,如下图,此时也能用–no-trunc参数看到被省略的信息:

640?wx_fmt=jpeg
   
组合使用

1、只显示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

2、上面的命令可以得到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/

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

福利
扫描添加小编微信,备注“ 姓名+公司职位 ”,入驻【CSDN博客】,加入【 云计算学习交流群 】,和志同道合的朋友们共同打卡学习!

640?wx_fmt=jpeg

推荐阅读:

真香,朕在看了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值