编程技术分享平台

网站首页 > 技术教程 正文

Docker常用命令小记(docker 常用操作命令)

xnh888 2024-10-16 17:40:28 技术教程 17 ℃ 0 评论

在我的日常工作中,除了基本的docker pull、docker image、docker 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

整体信息

用来看整体信息:

[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

...

释放空间

1. docker system prune会删除以下内容:

a. 已经停止的容器;

b. 未被使用的网络;

c. 所有未打标签的镜像;

d. 构建镜像时产生的缓存;

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

2. 删除已经停止的容器:docker container prune

3. 删除未被使用的网络:docker network prune

4. 删除没有Tag的镜像:docker image prune

5. 删除没有容器的镜像:docker image prune -a

6. 删除未被使用的数据卷: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. 按镜像过滤,这种过滤再细分有三种:

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可以获取镜像的详情,如下图所示,红框中就是摘要信息:

4. 按容器状态过滤:,状态有这些:created, restarting, running, removing, paused, exited, dead

5. 还有其他的过滤条件,不过不常用到,如下图:

信息获取

1. 查看容器所占硬盘空间:

上图红框中就是容器资源占用情况,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

下图展示了所有的列的名称:

3. 如下图红框所示,当字段内容过长时,展示的是部分内容,如果想查看完整信息请使用docker ps --no-trunc

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

组合使用

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/

欢迎关注我的公众号:程序员欣宸

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表