Docker常见命令使用

news2024/10/5 14:55:01

Docker命令是使用Docker的基础。这里记录下Docker日常运维过程中经常使用到的一些命令,更全面的命令还请参考Docker官网。

docker用法概述

Docker命令可以通过CLI工具实现与服务器的交互。Docker命令的语法如下:

docker [DOCKER-COMMAND] [OPTIONS] [IMAGE-NAME|CONTAINER-NAME] [COMMAND] [ARG...]

其中,DOCKER-COMMAND、OPTIONS、IMAGE-NAME、CONTAINER-NAME等表示的含义如下:
(1) DOCKER-COMMAND:表示Docker支持的子命令,如container表示容器管理,image表示镜像管理,login/logout表示登入/登出镜像注册中心,等等。
(2) OPTIONS:表示命令执行时需要的参数,不同子命令,根据其功能差异,OPTIONS的参数各有不同。
(3) IMAGE-NAME|CONTAINER-NAME:指定需要操作的镜像名或容器名。对于某些子命令支持同时操作多个对象。
(4) COMMAND:需要执行的指令,主要用于容器场景,表示在容器内执行的命令。
(5) ARG:指令参数,配合COMMAND使用。

docker容器操作命令

Docker使用过程中,最经常接触的、使用频率最高的就是Docker容器操作相关的命令。

容器生命周期管理

Docker容器的生命周期包括以下关键阶段:

请添加图片描述

docker create

可以使用docker create命令或docker container create命令来新建一个容器。docker create是docker container create的简写形式。其语法表示如下:

docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]

使用docker create命令创建的容器处于Created状态,还未运行起来,可以使用docker start命令来启动它。使用示例如下:

$ docker create -it ubuntu:latest

上述示例中新建了一个容器,对应的镜像名称是ubuntu,对应的镜像版本选用最新版本。
docker create命令支持的选项十分复杂,需要读者在实践中不断体会。具体来说,主要包括如下几大类:与容器运行模式相关、与容器环境配置相关、与容器资源限制和安全保护相关等。更多docker create命令介绍可以参考官网docker container create一文。

docker run

除了使用docker create命令创建容器后通过docker start命令来启动,也可以使用docker run命令直接新建并启动容器。docker run是docker container run的简写形式。其语法表示如下:

docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]

使用示例如下:

$ docker run -it ubuntu:latest /bin/bash

上述示例中,启动并运行一个容器,对应的镜像名称是ubuntu,对应的镜像版本选用最新版本。容器启动后,启用bin/bash这个shell。其中,-t选项让Docker分配一个伪终端并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。用户使用exit命令退出bash后,容器也会自动退出。这是因为对于容器来说,当其中的应用退出后,容器的使命完成,也就没有继续运行的必要。

更多docker run命令介绍可以参考官网docker container run一文。

docker start

可以使用docker start命令或docker container start命令来启动一个已经创建但未启动的容器。docker start是docker container start的简写形式。如使用docker start命令去启动一个使用docker create命令创建的容器,或启动一个因为某种原因处于Stopped状态的容器。其语法表示如下:

docker container start [OPTIONS] CONTAINER [CONTAINER...]

可以看到,docker start命令支持同时启动多个容器。使用示例如下:

$ docker start ubuntu

上述示例中,启动了名为ubuntu的容器。可以通过docker ps命令查看下运行的容器,示例如下:

$ docker ps
CONTAINER    ID            IMAGE         COMMAND     CREATED       STATUS  PORTS  NAMES
ubuntu       af8f4f922daf  ubuntu:latest "/bin/bash" 2 minutes ago Up             silly_euler

更多docker start命令介绍可以参考官网docker container start一文。

docker restart

可以使用docker restart命令或docker container restart命令来重启一个正在运行的容器。docker restart是docker container restart的简写形式。其语法表示如下:

docker container restart [OPTIONS] CONTAINER [CONTAINER...]

可以看到,docker restart命令支持同时启动多个容器。使用示例如下:

$ docker restart ubuntu

上述示例中,重启了名为ubuntu的容器。这里简单说明下docker start命令和docker restart命令的区别。对于docker start命令是启动处于Created或Stopped状态的容器。而docker restart命令会将一个运行态的容器先终止,然后再重新启动。如果使用docker restart重启一个处于Created或Stopped状态的容器,则两个命令没有区别,但不建议这么做。更多docker restart命令介绍可以参考官网docker container restart一文。

docker stop

可以使用docker stop来优雅终止一个运行中的容器。docker stop是docker container stop的简写形式。其语法表示如下:

docker container stop [OPTIONS] CONTAINER [CONTAINER...]

使用示例如下:

$ docker stop docker-name-or-docker-id

docker stop命令会向容器发送一个SIGTERM信号来终止容器。此外,当Docker容器中指定的应用终结时,容器也会自动终止。如,对于只启动了一个bash终端的容器,用户通过exit命令或Ctrl+d来退出终端时,所创建的容器也会立刻终止,处于停止状态。更多docker stop命令介绍可以参考官网docker container stop一文。

docker kill

除了使用docker stop来主动终止容器,还可以使用docker kill命令或docker container kill命令来强行终止容器。docker kill是docker container kill的简写形式。其语法表示如下:

docker container kill [OPTIONS] CONTAINER [CONTAINER...]

使用示例如下:

$ docker kill docker-name-or-docker-id

docker kill默认会发送SIGKILL信号来强制终止容器的运行,但是docker kill命令也支持传递其他信号量。与docker stop优雅终止运行中的容器来说,docker kill会立即终止容器的运行,可能会造成一些业务问题。对于生产环境,docker kill命令应谨慎使用。更多docker kill命令介绍可以参考官网docker container kill一文。

docker container prune

可以使用docker container prune清除掉所有处于Stopped状态的容器。注意,没有docker prune的简写形式。docker container prune的语法表示如下:

docker container prune [OPTIONS]

使用示例如下:

$ docker container prune

注意,docker container prune在清除掉处于Stopped状态的容器时,并不能指定容器,不过可以通过OPTIONS的–filter参数来指定过滤条件。更多docker container prune命令介绍可以参考官网docker container prune一文。

docker pause

可以使用docker pause命令或docker container pause命令来暂停一个运行中的容器。docker pause是docker container pause的简写形式。其语法表示如下:

docker container pause CONTAINER [CONTAINER...]

使用示例如下:

docker pause docker-name-or-docker-id

不同的操作系统,对应pause的实现原理有差异,更多docker pause命令介绍可以参考官网docker container pause一文。

docker unpause

使用docker pause命令进入Paused状态的容器,可以使用docker unpause或docker container unpause命令来恢复到运行状态。其语法表示如下:

docker container unpause CONTAINER [CONTAINER...]

使用示例如下:

docker unpause docker-name-or-docker-id

更多docker unpause命令介绍可以参考官网docker container unpause一文。

docker rm

可以使用docker rm或docker container rm或docker container remove命令来删除处于终止或退出状态的容器。docker rm是docker container rm或docker container remove命令的简写格式。其语法表示如下:

docker container rm [OPTIONS] CONTAINER [CONTAINER...]

默认情况下,docker rm命令只能删除已经处于终止或退出状态的容器,并不能删除还处于运行状态的容器。如果想要删除一个运行中的容器,可以添加-f参数。在强制删除时,Docker会先发送SIGKILL信号给容器,终止其中的应用,之后强行删除。示例如下:

$ docker rm -f ubuntu

上述示例中,强行终止并删除一个运行中的名为ubuntu的容器。更多docker rm命令介绍可以参考官网docker container rm一文。

docker wait

可以使用docker wait命令或docker container wait命令在终端阻塞等待直到指定的容器终止运行,并打印该容器的退出码。docker wait是docker container wait的简写形式。其语法表示如下:

docker container wait CONTAINER [CONTAINER...]

使用示例如下:

$ docker wait docker-name-or-docker-id

在终端中使用docker wait命令时,如果指定的容器正处于运行中,则当前终端将一直阻塞,直到容器终止;如果指定的容器正处于Created状态或Stopped状态,则当前终端将直接返回退出码。更多docker wait命令介绍可以参考官网docker container wait一文。

容器操作

除了管理容器的生命周期,Docker还提供了一系列的操作用来帮助日常的运维。如

docker rename

可以使用docker rename命令或docker container rename命令来重命名一个容器。docker rename是docker container rename的简写形式。其语法表示如下:

docker container rename CONTAINER NEW_NAME

将名为ubuntu的容器重命名为ubuntu-vim的命令如下:

$ docker rename ubuntu ubuntu-vim

更多docker rename命令介绍可以参考官网docker container rename一文。

docker attach

可以使用docker attach命令或docker container attach命令来连接或登录容器。docker attach是docker container attach的简写形式。其语法表示如下:

docker container attach [OPTIONS] CONTAINER

使用示例如下:

$docker attach docker-name-or-docker-id

docker attach命令可以将终端的标准输入(STDIN)、标准输出(STDOUT)和标准错误(STDERR)(或这三者的任意组合)附加到正在运行的容器上。这样开发或运维人员就可以查看容器的输出或以交互方式控制它,就像命令直接在容器的终端中运行一样,即登录正在运行的容器。
要停止容器,请使用CTRL+c快捷键。该快捷键发送SIGKILL信号到容器主进程。可以使用CTRL+p或CTRL+q快捷键从容器中分离并使其继续运行。
然而使用docker attach命令有时候并不方便。当多个窗口同时attach到同一个容器时,所有窗口都会同步显示;当某个窗口因命令阻塞时,其他窗口也无法执行操作了。推荐使用docker exec进入容器,推荐使用docker logs查看容器日志。
更多docker attach命令介绍可以参考官网docker container attach一文。

docker exec

docker exec是容器操作中使用频率最高的命令。可以使用docker exec命令或docker container exec命令在一个运行的容器中执行指定的命令。docker exec是docker container exec的简写形式。其语法表示如下:

docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]

日常的开发/运维过程中,经常需要进入容器的终端,这可以通过docker exec命令实现,示例如下:

docker exec -it docker-name-or-docker-id /bin/bash

上述示例中,将当前终端连接到容器,然后启用了一个shell客户端。这样就可在不影响容器内其他应用的前提下,与容器进行交互,就像与本地shell交互一样。
docker exec可以更好的覆盖docker attach的功能,且不会出现当多个窗口同时attach到同一个容器时,所有窗口都会同步显示的问题,推荐需要使用docker attach的地方,均使用docker exec替代。
更多docker exec命令介绍可以参考官网docker container exec一文。

docker logs

可以使用docker logs命令或docker container logs命令查看容器的日志。docker logs是docker container logs的简写形式。其语法表示如下:

docker container logs [OPTIONS] CONTAINER

使用示例如下:

$ docker logs -f docker-name-or-docker-id

需要注意的是,docker logs只能查看STDOUT、STDERR等标准输出的日志,对于存储到非标准输出的日志,如某个应用目录的文件下,则无能为力。这个时候可以通过docker exec进入容器的shell终端,然后在shell终端找到并查看日志文件即可。当然,也可在启动容器时指定输出路径,但是这会造成底层对高层的依赖,不推荐使用。如果一定要使用,可以参考Docker 日志管理最佳实践一文。更多docker logs命令介绍可以参考官网docker container logs一文。

docker export

可以使用docker export命令或docker container export命令导出一个容器的文件系统到一个tar文件。docker export是docker container export的简写形式。其语法表示如下:

docker container export [OPTIONS] CONTAINER

使用示例如下:

$docker export -o custom-docker.tar docker-name-or-docker-id

导出命令主要用于容器迁移的场景,先从一个环境中导出文件,然后再将其导入到另一个环境。不推荐使用导出/导入功能来实现容器的迁移,推荐使用Docker提供的容器镜像(Dockerfile)。更多docker export命令介绍可以参考官网docker container export一文。

docker import

可以使用docker import命令或docker image import从一个归档文件创建容器。docker import是docker image import的简写形式。注意,docker import是image相关的命令,这里划分在container下,主要是为了和export对应。其语法表示如下:

docker image import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

使用示例如下:

docker import /path/to/exampleimage.tgz

docker import既可以指向包含文件系统的文件(.tar、.tar.gz、.tgz、.bzip、.tar.xz 或 .txz),也可以指向 Docker主机上的单个文件。此外,还可从远程服务器导入,目前只支持以http://或https://协议开头的URI。更多docker import命令介绍可以参考官网docker image import一文。

docker container inspect

可以使用docker container inspect命令来查看容器的元数据信息(如ID、创建时间、IP等信息)。注意docker container inspect没有docker inspect的简写形式。其语法表示如下:

docker container inspect [OPTIONS] CONTAINER [CONTAINER...]

更多docker container inspect命令介绍可以参考官网docker container inspect一文。

docker top

可以使用docker top命令或docker container top命令来查看容器中运行的进程信息,支持ps命令参数。docker top是docker container top的简写形式。其语法表示如下:

docker container top CONTAINER [ps OPTIONS]

使用示例如下:

$docker top docker-name-or-docker-id

docker top命令类似于Linux系统中的top命令,会打印出容器内的进程信息,包括PID、 用户、时间、命令等。更多docker top命令介绍可以参考官网docker container top一文。

docker stats

可以使用docker stats命令或docker container stats实时查看容器资源的使用情况,包括:CPU、内存、网络I/O等。docker stats是docker container stats的简写形式。其语法表示如下:

docker container stats [OPTIONS] [CONTAINER...]

使用示例如下:

$ docker stats --all

docker stats命令也可以指定已停止的容器,但是不会返回任何信息。可以使用–format来格式化统计数据,更多docker stats命令介绍可以参考官网docker container stats一文。

docker cp

可以使用docker cp命令或docker container cp命令在本地文件系统和容器之间复制文件或文件夹。docker cp是docker container cp的简写形式。
从容器复制到宿主机的语法表示如下:

docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

如将test容器的/tmp路径复制到本地的路径/data的命令是:

$ docker cp test:/tmp/ /data  

从宿主机复制到容器的语法表示如下:

docker container cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

如将本地路径data复制到test容器的/tmp路径下的命令是:

docker cp /data test:/tmp/

注意,docker cp命令中的本地文件系统中的路径可以是绝对路径,也可以是相对路径,相对于当前命令执行的路径。而容器中的路径都是相对容器的/根路径。
docker cp 命令对操作的容器的状态没有要求,可以是在运行状态,也可以是停止状态。更多docker cp命令介绍可以参考官网docker container cp一文。

docker commit

可以使用docker commit命令或docker container commit命令根据当前容器的更改创建一个新的镜像。已生成的镜像可以通过docker images查看到。docker commit是docker container commit的简写形式。其语法表示如下:

docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

使用示例如下:

$ docker commit docker-name-or-docker-id custom-repository/custom-image:v1

当使用docker commit 命令时,就向镜像提交了一个新的文件层。但这并不是只有文件系统快照被提交。每一层都包含描述执行上下文的元数据。其中包括一些容器启动时设置的参数,如环境变量、工作目录、 容器入口点、命令和参数等。如果上述值没有被明确地指定,那么这些值会从原始镜像继承。更多docker commit命令介绍可以参考官网docker container commit一文。

docker diff

可以使用docker diff命令或docker container diff命令比较一个容器不同版本提交的文件差异。docker diff是docker container diff的简写形式。其语法表示如下:

docker container diff CONTAINER

使用示例如下:

$docker diff docker-name-or-docker-id

docker diff命令列出容器内文件由三种状态:A-Add、D-Delete、C-Change。更多docker diff命令介绍可以参考官网docker container diff一文。

docker port

可以使用docker port命令查看容器的端口映射。docker port是docker container port的简写形式。其语法表示如下:

docker container port CONTAINER [PRIVATE_PORT[/PROTO]]

查看容器的端口映射,使用示例如下:

$ docker port docker-name-or-docker-id

如果仅需查看特定端口的映射,比如仅希望查看tcp协议80端口的映射,示例如下:

$ docker port docker-name-or-docker-id 80/tcp

更多docker port命令介绍可以参考官网docker container port一文。

docker update

可以使用docker update命令来动态更新容器的配置。docker update是docker container update的简写形式。其语法表示如下:

docker container update [OPTIONS] CONTAINER [CONTAINER...]

如限制cpu使用2核,限制内存占用为512M的命令如下:

docker update --cpus 2 -m 512M docker-name-or-docker-id

docker update命令支持更新的配置很多,如使用-c参数限制CPU使用份额、使用–cpus限制CPU个数、使用-m限制使用的内存等等。使用docker update命令时,要注意使用的docker版本。不同的docker版本支持的命令可能有差异。更多docker update命令介绍可以参考官网docker container update一文。

docker镜像操作命令

Docker通过一种打包和分发的软件,完成传统容器的封装。这个用来充当容器分发角色的组件被称为镜像。Docker镜像是一个容器中运行程序的所有文件的捆绑快照。当使用Docker分发软件,其实就是分发这些镜像,并在接收的机器上创建容器。镜像在Docker生态系统中是可交付的基本单位。

docker images

可以使用docker images命令或docker image ls命令或docker image list命令查看本地的镜像。docker images是docker image ls或docker image list的简写形式。其语法表示如下:

docker image list [OPTIONS] [REPOSITORY[:TAG]]

如果不需要查看所有的镜像,只需要查看某一个镜像,可以使用如下的命令:

$ docker images image-name

此外,–digests参数可以只查看本地镜像的摘要信息,-q参数可以仅查看本地镜像列表的ID信息。更多docker images命令介绍可以参考官网docker images一文。

docker image inspect

可以使用docker image inspect命令来查看镜像的元数据信息(如制作者、适应架构、各层的数字摘要、ID、创建时间、容器ID等信息)。注意docker image inspect没有简写形式。其语法表示如下:

docker image inspect [OPTIONS] IMAGE [IMAGE...]

docker image inspect命令和docker container inspect命令类似,只是docker image inspect作用的对象是镜像,docker container inspect作用的对象是容器。更多docker image inspect命令介绍可以参考官网docker image inspect一文。

docker image history

可以使用docker history命令或docker image history命令查看镜像的历史信息。docker history是docker image history的简写形式。其语法表示如下:

docker image history [OPTIONS] IMAGE

使用示例如下:

$ docker history image-name

docker history命令会列出各个镜像层的创建信息。更多docker history命令介绍可以参考官网docker image history一文。

docker image build

可以使用docker build或docker image build命令来基于Dockerfile文件创建镜像。docker build是docker image build的简写形式。其语法表示如下:

docker image build [OPTIONS] PATH | URL | -

指定Dockerfile路径并指定镜像名称及版本的构建命令如下:

$ docker build -t custom-image:V1 /path/to/a/Dockerfile 

如果不指定-t(–tag)参数,那么Docker会使用给镜像设置默认的镜像名称和标签。默认的名称通常是基于Dockerfile文件所在的目录和当前时间戳等信息生成的,而标签则通常为<none>。可以使用到docker images查看新生成的镜像。为了更好地管理和识别镜像,建议在构建时明确指定镜像的名称和标签。
除了指定Dockerfile的路径,docker build命令还支持指定Dockerfile的URL。更多docker build命令介绍可以参考官网docker image build一文。

至此,构建Docker镜像的三种主要方法都已经介绍完了,它们是:(1)使用docker commit创建新镜像;(2)使用docker import导入本地模板;(3)使用docker build 命令和Dockerfile文件构建镜像。这里推荐第三种。无论是docker commit还是docker import,都依赖特定的环境才能生成镜像。而Dockerfile+docker build的方式,将镜像的构建过程写入到Dockerfile文件中,实现了无环境无关。
Dockerfile使用基本的基于DSL语法的指令来构建一个Docker镜像,之后使用docker build命令基于该Dockerfile中指令构建一个新的镜像。将保存Dockerfile文件的目录称为"构建环境"。Docker会在构建镜像中将构建上下文和该上下文中的文件和目录上传到Docker守护进程。这样,Docker守护进程就能直接访问想在镜像中存储的任何代码、文件或者其他数据。

docker image tag

可以使用docker tag命令或docker image tag命令给一个镜像打标签。docker tag是docker image tag的简写形式。其语法表示如下:

docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

使用示例如下:

$ docker tag ubuntu ubuntu-vim

需要注意的是,尽管使用docker tag给镜像打标签会新增一个image记录,但是从IMAGE ID可知它们是同一个镜像。docker tag的作用与git代码管理工具的tag的作用类似。
更多docker tag命令介绍可以参考官网docker image tag一文。

docker image save

可以使用docker save命令或docker image save命令将镜像保存成tar类型的压缩文件。docker save是docker image save的简写形式。其语法表示如下:

docker image save [OPTIONS] IMAGE [IMAGE...]

docker save默认会镜像的归档文件输出到标准输出,为了持久化这个文件,可以指定到特定文件,示例如下:

docker save -o custom-image.tar image-name-or-image-id

docker save命令不会生成镜像,而是将镜像持久化。而docker export命令对作用于容器,导出容器的的文件系统到一个tar文件,是对容器的持久化,可以看成容器的快照文件。使用docker export生成的镜像,再次导入后,将会丢失镜像历史和镜像层,这就意味着使用导出再导入的方式迁移或复用镜像,将无法回滚到之前的镜像层。而使用docker save生成的镜像,再通过load加载后,因为持久化了整个镜像,可以做到镜像层回滚。
更多docker save命令介绍可以参考官网docker image save一文。

docker image load

可以使用docker load命令或docker image load命令导入使用docker save命令导出的镜像压缩包。docker load是docker image load的简写形式。其语法表示如下:

docker image load [OPTIONS]

加载一个本地镜像压缩包的命令示例如下:

$ docker load -i /path/to/custom-image.tar

docker load命令用来导入一个镜像文件到本地镜像库,注意与docker import命令的区别。docker import命令导入容器快照文件到本地镜像库。容器快照文件和镜像文件的区别是:容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积更大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
更多docker load命令介绍可以参考官网docker image load一文。

docker image pull

可以使用docker pull命令或docker image pull命令从镜像仓库中心中拉取或者更新指定镜像。docker pull是docker image pull的简写形式。其语法表示如下:

docker image pull [OPTIONS] NAME[:TAG|@DIGEST]

从镜像仓库中心拉取ubuntu镜像,对应版本是18.04的命令如下:

$ docker pull ubuntu:18.04

注意,在使用docker pull命令时,并不需要指定镜像仓库中心,而是需要先试用docker login命令提前登录镜像仓库中心。也可以在使用docker pull拉取镜像的时候指定URL,但是不能添加协议(如https://)。更多docker pull命令介绍可以参考官网docker image pull一文。

docker image push

可以使用docker push命令或docker image push命令将本地的Docker镜像上传到Docker镜像仓库。docker push是docker image push简写形式。其语法表示如下:

docker image push [OPTIONS] NAME[:TAG]

将本地的ubuntu镜像,对应版本是28.04,推送到镜像注册中心的的命令如下:

$ docker push ubuntu:18.04

需要说明的是,docker push命令使用之前需要要先使用docker login登录到镜像仓库中心。更多docker push命令介绍可以参考官网docker image push一文。

docker image rm

可以使用docker image rm命令或docker image remove命令或docker rmi命令来删除镜像。docker rmi是docker image rm或docker image remove的简写形式。其语法表示如下:

docker image remove [OPTIONS] IMAGE [IMAGE...]

强制删除本地本地的ubuntu镜像的命令如下:

$ docker rmi ubuntu:latest

当同一个镜像拥有多个标签的时候,docker rmi 命令只是删除了该镜像多个标签中的指定标签而巳,并不影响镜像文件。相当于只是删除了镜像的一个标签副本而已。但当镜像只剩下一个标签时,再使用 docker rm命令会彻底删除镜像。
除了删除指定的指令,还可以与其他命令组合,实现镜像的批量删除,如删除所有镜像可以使用**docker rmi $(docker images -q)**的命令。更多docker image rm命令介绍可以参考官网docker image rm一文。

docker image prune

可以使用docker image prune清除掉未使用的镜像。所谓的未使用的镜像,主要指没有使用docker tag标记的镜像或没有被其他镜像引用的镜像。注意,没有docker prune的简写形式。docker image prune的语法表示如下:

docker image prune [OPTIONS]

清除所有未使用的镜像命令如下:

$ docker image prune --all

可以通过OPTIONS的–filter参数来指定过滤条件,或使用-f参数来强制清除未使用的镜像。更多docker image prune命令介绍可以参考官网docker image prune一文。

docker系统命令

docker system命令有助于检查和管理Docker环境。目前有四个子命令:
(1)docker system df命令用来显示磁盘的使用情况;
(2)docker system events命令用来实时显示系统事件日志;
(3)docker system info命令用来显示系统相关信息;
(4)docker system prune命令用来清除当前环境未使用的网络、容器、镜像或卷等。

docker system df

可以使用docker system df命令查看Docker Daemon进程占用的磁盘空间。其语法表示如下:

docker system df [OPTIONS]

如果需要查看磁盘的详细占用情况,可以使用如下的命令:

$ docker system df -v

docker system df主要在宿主机使用一段时间后,出现磁盘空间不足或因磁盘空间不足出现容器创建失败等问题时使用。更多docker system df命令介绍可以参考官网docker system df一文。

docker system events

可以使用docker system events命令查看docker系统实时事件。其语法表示如下:

docker system events [OPTIONS]

如需要查看一段时间范围内系统时间,可以使用如下的命令:

$docker events --since '2024-01-05T00:35:30' --until '2017-01-05T00:36:05'

更多docker system events命令介绍可以参考官网docker system events一文。

docker system info

可以使用docker info或docker system info命令查看系统的信息。这些系统信息包括:kernel版本,容器数量,镜像数量等。docker info是docker system info的简写形式。其语法表示如下:

docker system info [OPTIONS]

使用示例如下:

$ docker info

docker info命令支持格式化输出,更多docker info命令介绍可以参考官网docker system info一文。

docker system prune

可以使用docker system prune命令删除未使用的容器、网络、镜像、存储卷等资源。docker system prune是比docker container prune和docker image prune更强大的命令,支持清除更多未使用的使用资源。其语法表示如下:

docker system prune [OPTIONS]

如需要清除当前环境下所有未使用的资源(仅限容器、网络、镜像、存储卷等四种资源),可以使用如下的命令:

docker system prune -a  --volumes

默认情况下,存储卷不会被清除,因为可能是误删一些重要数据,如果需要删除,还需增加–volumes参数。更多docker system prune命令介绍可以参考官网docker system prune一文。

docker命令汇总

为了方便查找和使用,这里使用表格汇总下上面介绍的命令。

操作对象命令语法含义说明
containerdocker createdocker container create [OPTIONS] IMAGE [COMMAND] [ARG…]可以使用docker create命令或docker container create命令来新建一个容器。
containerdocker rundocker container run [OPTIONS] IMAGE [COMMAND] [ARG…]可以使用docker run命令直接新建并启动容器。
containerdocker startdocker container start [OPTIONS] CONTAINER [CONTAINER…]可以使用docker start命令或docker container start命令来启动一个已经创建但未启动的容器。
containerdocker restartdocker container restart [OPTIONS] CONTAINER [CONTAINER…]可以使用docker restart命令或docker container restart命令来重启一个正在运行的容器。
containerdocker stopdocker container stop [OPTIONS] CONTAINER [CONTAINER…]可以使用docker stop来优雅终止一个运行中的容器。
containerdocker killdocker container kill [OPTIONS] CONTAINER [CONTAINER…]可以使用docker kill命令或docker container kill命令来强行终止容器。
containerdocker container prunedocker container prune [OPTIONS]可以使用docker container prune清除掉所有处于Stopped状态的容器。
containerdocker pausedocker container pause CONTAINER [CONTAINER…]可以使用docker pause命令或docker container pause命令来暂停一个运行中的容器。
containerdocker container prunedocker container prune [OPTIONS]可以使用docker container prune清除掉所有处于Stopped状态的容器。
containerdocker unpausedocker container unpause CONTAINER [CONTAINER…]可以使用docker unpause或docker container unpause命令来恢复到运行状态。
containerdocker container prunedocker container prune [OPTIONS]可以使用docker container prune清除掉所有处于Stopped状态的容器。
containerdocker rmdocker container rm [OPTIONS] CONTAINER [CONTAINER…]可以使用docker rm或docker container rm或docker container remove命令来删除处于终止或退出状态的容器。
containerdocker waitdocker container wait CONTAINER [CONTAINER…]可以使用docker wait命令或docker container wait命令在终端阻塞等待直到指定的容器终止运行,并打印该容器的退出码。
containerdocker renamedocker container rename CONTAINER NEW_NAME可以使用docker rename命令或docker container rename命令来重命名一个容器。
containerdocker attachdocker container attach [OPTIONS] CONTAINER可以使用docker attach命令或docker container attach命令来连接或登录容器。不推荐使用,推荐使用docker exec
containerdocker execdocker container exec [OPTIONS] CONTAINER COMMAND [ARG…]可以使用docker exec命令或docker container exec命令在一个运行的容器中执行指定的命令。
containerdocker logsdocker container logs [OPTIONS] CONTAINER可以使用docker logs命令或docker container logs命令查看容器的日志。
containerdocker exportdocker container export [OPTIONS] CONTAINER可以使用docker export命令或docker container export命令导出一个容器的文件系统到一个tar文件。
imagedocker importdocker image import [OPTIONS] fileURL
containerdocker container inspectdocker container inspect [OPTIONS] CONTAINER [CONTAINER…]可以使用docker container inspect命令来查看容器的元数据信息(如ID、创建时间、IP等信息)。
containerdocker topdocker container top CONTAINER [ps OPTIONS]可以使用docker top命令或docker container top命令来查看容器中运行的进程信息,支持ps命令参数。
containerdocker statsdocker container stats [OPTIONS] [CONTAINER…]可以使用docker stats命令或docker container stats实时查看容器资源的使用情况,包括:CPU、内存、网络I/O等。
containerdocker cpdocker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-可以使用docker cp命令或docker container cp命令在本地文件系统和容器之间复制文件或文件夹。
containerdocker commitdocker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]可以使用docker commit命令或docker container commit命令根据当前容器的更改创建一个新的镜像。
containerdocker diffdocker container diff CONTAINER可以使用docker diff命令或docker container diff命令比较一个容器不同版本提交的文件差异。
containerdocker portdocker container port CONTAINER [PRIVATE_PORT[/PROTO]]可以使用docker port命令查看容器的端口映射。
containerdocker updatedocker container update [OPTIONS] CONTAINER [CONTAINER…]可以使用docker update命令来动态更新容器的配置。
imagedocker imagesdocker image list [OPTIONS] [REPOSITORY[:TAG]]可以使用docker images命令或docker image ls命令或docker image list命令查看本地的镜像。
imagedocker image inspectdocker image inspect [OPTIONS] IMAGE [IMAGE…]可以使用docker image inspect命令来查看镜像的元数据信息(如制作者、适应架构、各层的数字摘要、ID、创建时间、容器ID等信息)。
imagedocker historydocker image history [OPTIONS] IMAGE可以使用docker history命令或docker image history命令查看镜像的历史信息。
imagedocker builddocker image build [OPTIONS] PATH | URL | -可以使用docker build或docker image build命令来基于Dockerfile文件创建镜像。
imagedocker tagdocker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]可以使用docker tag命令或docker image tag命令给一个镜像打标签。
imagedocker savedocker image save [OPTIONS] IMAGE [IMAGE…]可以使用docker save命令或docker image save命令将镜像保存成tar类型的压缩文件。
imagedocker loaddocker image load [OPTIONS]可以使用docker load命令或docker image load命令导入使用docker save命令导出的镜像压缩包。
imagedocker pulldocker image pull [OPTIONS] NAME[:TAG|@DIGEST]可以使用docker pull命令或docker image pull命令从镜像仓库中心中拉取或者更新指定镜像。
imagedocker pushdocker image push [OPTIONS] NAME[:TAG]可以使用docker push命令或docker image push命令将本地的Docker镜像上传到Docker镜像仓库。
imagedocker rmidocker image remove [OPTIONS] IMAGE [IMAGE…]以使用docker image rm命令或docker image remove命令或docker rmi命令来删除镜像。
imagedocker image prunedocker image prune [OPTIONS]可以使用docker image prune清除掉未使用的镜像。所谓的未使用的镜像,主要指没有使用docker tag标记的镜像或没有被其他镜像引用的镜像。
systemdocker system dfdocker system df [OPTIONS]可以使用docker system df命令查看Docker Daemon进程占用的磁盘空间。
systemdocker system eventsdocker system events [OPTIONS]可以使用docker system events命令查看docker系统实时事件。
systemdocker system infodocker system info [OPTIONS]可以使用docker info或docker system info命令查看系统的信息。这些系统信息包括:kernel版本,容器数量,镜像数量等。
systemdocker system prunedocker system prune [OPTIONS]可以使用docker system prune命令删除未使用的容器、网络、镜像、存储卷等资源。

参考

https://blog.csdn.net/chenmozhe22/article/details/113850238 Docker/Podman使用入门—基础命令篇
https://www.runoob.com/docker/docker-command-manual.html Docker 命令大全
https://haicoder.net/docker/docker-command.html Docker命令
https://www.lvbibir.cn/posts/tech/docker-commands/ docker | 常见命令
https://docs.docker.com/engine/reference/commandline/cli/ Use the Docker command line
https://github.com/wsargent/docker-cheat-sheet docker-cheat-sheet
https://docs.docker.com/reference/cli/docker/ docker (base command)
https://juejin.cn/post/7338717224435531826 docker init
https://zhuanlan.zhihu.com/p/644429693 一文带你了解 Docker 容器生命周期
https://www.devopsschool.com/blog/lifecycle-of-docker-containers/ Lifecycle of Docker Containers
https://blog.csdn.net/succing/article/details/122393565 Docker容器生命周期
https://blog.csdn.net/weixin_41384860/article/details/128723506 Docker wait命令
https://www.zhaowenyu.com/docker-doc/reference/dockercmd/dockercmd-docker-attach.html docker attach
https://segmentfault.com/a/1190000010086763 从敲下docker logs开始理解docker日志原理
https://segmentfault.com/a/1190000023144155 Docker 日志管理最佳实践
https://blog.csdn.net/agonie201218/article/details/132420832 docker update 命令
https://www.zhaowenyu.com/docker-doc/reference/dockercmd/dockercmd-docker-build.html docker build
https://zhuanlan.zhihu.com/p/72870790 Docker的save和export命令的区别
https://www.lvbibir.cn/posts/tech/docker-commands/#23-rmi docker rmi命令
https://zhuanlan.zhihu.com/p/443993273 Docker 镜像清理
https://haicoder.net/docker/docker-tag.html Docker tag命令
https://zhuanlan.zhihu.com/p/671826581 Docker基础命令
https://yiyan.baidu.com/ 文心一言–docker build命令生成镜像的名称

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1502623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【高效开发工具系列】Windows 系统下将 Windows 键盘的 ctrl 和 alt 互换

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

vscode 配置opengl (glut), lib链接可参考

这里假定你已经配置好基础的vscode c环境 json介绍 这里其实主要配置的3种json, vscode其实就是通过launch.json和tasks.json来自动生成指令的 launch.json 这个用于启动程序用的&#xff0c;但是由于其可以指定preLaunchTask-即在启动之前需要做什么事情&#xff0c;所以这…

【面试精讲】Java动态代理是如何实现的?JDK Proxy 和 CGLib 有什么区别?

Java动态代理是如何实现的&#xff1f;JDK Proxy 和 CGLib 有什么区别&#xff1f; 目录 一、Java动态代理的实现 1、使用JDK Proxy实现动态代理 2、使用CGLib实现动态代理 二、JDK Proxy 与 CGLib 的区别 三、Spring中的动态代理 四、 Lombok代理原理 总结 前言 本文…

做跨境电商,选哪个浏览器好?跨境电商浏览器推荐

在我们的日常生活中&#xff0c;有很多浏览器可供选择&#xff0c;比如百度浏览器、谷歌浏览器和360、火狐等等。但是在跨境电商行业中&#xff0c;是否有特别适合我们卖家使用的浏览器呢&#xff1f;所谓跨境电商浏览器&#xff0c;就是为跨境电商用户设计的浏览器&#xff0c…

【LeetCode 算法专题突破】---二分查找(⭐⭐⭐)

前言 我在算法题目的海洋中畅游已久&#xff0c;也曾在算法竞赛中荣获佳绩。然而&#xff0c;我发现自己对于算法的学习&#xff0c;还缺乏一个系统性的总结和归类。尽管我已经涉猎过不少算法类型&#xff0c;但心中仍旧觉得有所欠缺&#xff0c;未能形成完整的算法体系。 因…

官方阴阳怪气?双标?《Nature》专访《中科院预警名单》,中国作者为何炸裂?

毕业推荐 SCIE&#xff1a; • 计算机类&#xff0c;6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区 • 2个月19天录用&#xff0c;6天见刊&#xff0c;36天检索 SCI&EI&#xff08;CCF-C类&#xff09; • 算法类&#xff0c;2.0-3.0&#xff0c;JCR3区&#xff0c…

Springboot+vue的养老院管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的养老院管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的养老院管理系统&#xff0c;采用M&#xff08;model&#xff09;V&…

SpringBoot 多平台文件配置

目录 一 主配置文件和辅配置文件 二 具体使用 1. 通过直接修改 application.yml 中的属性值 2. 通过 maven 进行配置修改 当我们需要部署项目的时候, 肯定会遇到不同的部署环境下, 需要有不同的配置. 例如开发环境下和生产环境下的配置肯定就不会是完全相同的, 如数据库的…

pytorch 批量归一化BatchNorm的BatchNorm1d和BatchNorm2d理解

BatchNorm即批量归一化&#xff0c;是深度学习中经常用到的加速神经网络训练&#xff0c;加速收敛速度及稳定性的算法&#xff0c;是神经网络训练必不可少的一部分。 BatchNorm作用&#xff1a;在进行批量训练过程中&#xff0c;每个batch具有不同的分布&#xff0c;使数据分布…

图片二维码不限扫码次数怎么做?长期有效的图片二维码在线生成技巧

图片制作二维码能长期使用吗&#xff1f;在生活中很多地方都可以看到很多存有图片的二维码&#xff0c;通过扫码后查看图片内容&#xff0c;比如一些公共场所、产品介绍、景区等场所中都有图片转二维码的应用。那么怎么做出可以长期扫码展示图片二维码呢&#xff0c;其实方法很…

CSS 弹性盒子模型

它主要是在一个大的容器当中里面子元素的一个设置。一个大的盒子里面里面的子元素如何摆放由我们的弹性盒子说的算。 之前的盒子模型是一个元素&#xff0c;内边距外边距&#xff0c;边框来调整在页面所显示的位置。 弹性盒子&#xff0c;在大容器里面&#xff0c;里面有很多…

基于C++的配置文件解析器/编码器——toml库

在平常的软件开发过程中&#xff0c;配置文件是重要的一环&#xff0c;使用配置文件在软件开发过程中具有以下好处和必要性&#xff1a; 灵活性&#xff1a;配置文件允许在不修改代码的情况下更改应用程序的行为&#xff0c;通过修改配置文件&#xff0c;可以调整应用程序的参…

智能合约语言(eDSL)—— proc_macro实现合约init函数

我们通过属性宏来实现合约的init函数&#xff0c;call函数其实和init是类似的&#xff1b; GitHub - XuHugo/xwasm 构建属性宏&#xff0c;要在cargo.toml里面设置一些参数&#xff0c;这是必须的。一般来说&#xff0c;过程宏必须是一个库&#xff0c;或者作为工程的子库&…

LabVIEW质谱仪开发与升级

LabVIEW质谱仪开发与升级 随着科技的发展和实验要求的提高&#xff0c;传统基于VB的质谱仪系统已经无法满足当前的高精度和高效率需求。这些系统通常存在着功能不全和操作复杂的问题&#xff0c;影响了科研和生产的进度。为了解决这些问题&#xff0c;开发了一套基于LabVIEW开…

【Web安全】htaccess攻击

.htaccess攻击 文章目录 .htaccess攻击1. .htaccess文件2. 常见用法2.1. 自定义出错界面2.2. 强制文件执行方式2.3. PCRE绕过正则匹配2.4. php_value修改php设定2.5. php_value文件包含2.6. 把htaccess当作php 1. .htaccess文件 .htaccess是Apache网络服务器一个配置文件&#…

MATLAB读取.nc(数据集)文件

MATLAB读取.nc(数据集)文件 以中国1km逐月潜在蒸散发数据集&#xff08;1901-2022&#xff09;为例 首先用FileZilla下载特定年份的数据集 用matlab进行处理&#xff0c;代码如下&#xff1a; clear;clc;ncdisp("pet_2022.nc") %读数据集的具体信息和变量eva ncr…

JAVA中YML:几个用法

项目有一些配置文件&#xff0c;ini、prop类型的配置文件都考虑过后&#xff0c;还是选择yml文件&#xff0c;如上图&#xff1a;xxconfig.yml。 要求&#xff1a; 1、允许实施人员手动配置 2、配置文件要能轻便的转化为一个JAVA对象 3、程序启动后&#xff0c;打印这些配置项&…

蓝桥省赛倒计时 35 天-线性 dp 练习

文章目录 数学三角形最长上升子序列 数学三角形 思路&#xff1a;就是下一层通过上一层的条件转移过来&#xff0c;注意数可以是负数&#xff0c;所以边界得取-INF&#xff0c;这样求上层 max 的时候不会被初始化的数如 0 影响。 #include<bits/stdc.h> using namespace…

【Qt】不透明指针(Opaque Pointer)在Qt源码中的应用

目录 什么是不透明指针&#xff08;Opaque Pointer&#xff09;不透明指针在Qt代码中的应用Qt中与不透明指针相关的一些宏 什么是不透明指针&#xff08;Opaque Pointer&#xff09; GeeksforGeeks中给的定义如下&#xff1a; An opaque pointer is a pointer that points to …

每日一题 — 和为t的两个数

LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 代码&#xff1a; public int[] twoSum(int[] price, int target) {int left 0;int right price.length - 1;while(left < right){//每一次都重新计算和int sum price[…