Docker常用命令小记

简介: 将日常工作中常用的docker命令做个小结

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos

本篇概览

  • 除了基本的docker pulldocker imagedocker ps,还有一些命令及参数也很重要,在此记录下来避免遗忘。

环境信息

  • 以下是本次操作的环境:
  1. 操作系统:CentOS Linux release 7.7.1908
  2. 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

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
|
2月前
|
监控 Docker 容器
Docker 启动命令里 --cgroupns host 是什么作用?
【8月更文挑战第19天】Docker 启动命令里 --cgroupns host 是什么作用?
105 1
|
9天前
|
Linux Docker 容器
linux之docker命令
linux之docker命令
|
1月前
|
应用服务中间件 Shell nginx
Docker容器操作基础命令
关于Docker容器操作基础命令的教程,涵盖了从启动、查看、删除容器到端口映射和容器信息获取的一系列常用命令及其使用方法。
63 14
|
29天前
|
存储 Docker 容器
docker save命令和load命令
docker save命令和load命令
|
2月前
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
8天前
|
Ubuntu Shell Docker
docker使用什么命令让时间恢复正确啊
docker使用什么命令让时间恢复正确啊
|
8天前
|
Docker 容器
7-13|docker build -t image-name:tag path/to/Dockerfile 这个命令具体什么意思
7-13|docker build -t image-name:tag path/to/Dockerfile 这个命令具体什么意思
|
2月前
|
Docker 容器
Docker Kill/Pause/Unpause命令详细使用指南
总之,`docker kill`、`docker pause`和 `docker unpause`命令是对容器执行快速状态控制操作的有力工具。使用这些命令可以帮助您更好地管理容器,并在需要时快速响应异常情况。在操作过程中,应当谨慎使用 `docker kill`,因为它将导致容器立即停止,有可能导致数据丢失或文件系统损坏。在可能的情况下,先尝试使用 `docker stop`命令以正常方式停止容器。
30 2
|
2月前
|
负载均衡 调度 Docker
|
2月前
|
存储 Docker 容器
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
下一篇
无影云桌面