当前位置:   article > 正文

docker常用命令[超详细]

docker常用命令

docker命令

docker ps

docker ps命令用于列出当前正在运行的Docker容器。它的语法如下:

docker ps [OPTIONS]
  • 1

其中,OPTIONS是可选参数,常用的选项包括:

  • -a:列出所有的容器,包括已经停止的容器。
  • -f:根据条件过滤容器。比如,docker ps -f status=exited可以列出所有已经停止的容器。
  • -n:显示最近创建的n个容器。
  • -q:仅显示容器的ID。

例如,要列出当前正在运行的所有容器,可以使用以下命令:

docker ps
  • 1

如果要列出所有的容器,包括已经停止的容器,可以使用以下命令:

docker ps -a
  • 1

如果要列出最近创建的3个容器的ID,可以使用以下命令:

docker ps -n 3 -q
  • 1

docker pull

docker pull命令用于从Docker Registry或Docker Hub中拉取镜像。

docker pull [OPTIONS] [IMAGES]
  • 1

常用选项:

  • --all-tags:拉取镜像的所有标签
  • --quiet, -q:只输出镜像ID
  • --disable-content-trust:禁用内容信任验证

例如:拉取官方nginx镜像:

docker pull nginx
  • 1

拉取官方nginx镜像的指定版本:

docker pull nginx:1.19.2
  • 1

拉取官方nginx镜像的所有标签:

docker pull --all-tags nginx
  • 1

docker images

docker images命令用于列出本地主机上的Docker镜像列表。

语法:

docker images [OPTIONS] [REPOSITORY[:TAG]]
  • 1

参数:

  • -a:列出所有镜像,包括中间层镜像。
  • -q:只显示镜像ID。
  • --no-trunc:显示完整的镜像ID。
  • --digests:显示镜像的摘要信息。
  • --format:指定输出的格式。
  • --filter:根据条件过滤镜像。

示例:

  1. 列出本地主机上的所有镜像:
docker images
  • 1
  1. 列出指定仓库的镜像:
docker images ubuntu
  • 1
  1. 列出指定标签的镜像:
docker images ubuntu:18.04
  • 1
  1. 列出所有镜像的ID:
docker images -q
  • 1
  1. 列出所有镜像的完整ID:
docker images -q --no-trunc
  • 1
  1. 列出所有镜像的摘要信息:
docker images --digests
  • 1
  1. 根据条件过滤镜像:
docker images --filter "dangling=true"
  • 1

docker run

docker run命令用于在Docker容器中运行一个新的应用程序或服务。以下是一些常用的docker run命令选项:
语法:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 1
  • -d:在后台运行容器
  • -p:将容器内部端口映射到主机端口
  • -v:将主机目录或文件挂载到容器内部
  • --name:为容器指定一个名称
  • --rm:容器停止后自动删除
  • --env:设置容器内部的环境变量
  • --network:指定容器所在的网络
  • --restart:容器停止后自动重启
  • --e:设置容器环境变量

例如,以下命令将在后台运行一个名为“myapp”的容器,将容器内部的端口80映射到主机的端口8080,并将主机的目录“/app”挂载到容器内部的“/usr/src/myapp”目录:

docker run -d -p 8080:80 -v /app:/usr/src/myapp --name myapp nginx
  • 1

docker start

docker start命令用于启动已经停止的容器,语法如下:

docker start [OPTIONS] CONTAINER [CONTAINER...]
  • 1

常用的选项包括:

  • -a, --attach:附加到容器的标准输入、输出和错误输出。
  • -i, --interactive:启用容器的标准输入,通常与 -a 一起使用。
  • -d, --detach:在后台运行容器。
  • -p, --publish:将容器内部端口映射到主机端口。
  • -P, --publish-all:将所有容器内部暴露的端口映射到主机端口。

例如,启动名为 mycontainer 的容器并附加到标准输入输出:

docker start -ai mycontainer
  • 1

docker restart

docker restart命令用于重新启动一个或多个已经停止的容器。它的语法如下:

docker restart [OPTIONS] CONTAINER [CONTAINER...]
  • 1

其中,OPTIONS包括:

  • -t, --time:等待超时时间,单位为秒。

示例,重新启动名为container1的容器:

docker restart container1
  • 1

docker info

docker info命令用于显示有关Docker守护程序的系统信息,包括Docker版本、操作系统类型和版本、CPU和内存使用情况、镜像和容器数量等。

使用方法:

docker info
  • 1

docker logs

docker logs命令用于查看Docker容器的日志。它可以显示容器的标准输出和标准错误输出。docker logs命令的语法如下:

docker logs [OPTIONS] CONTAINER
  • 1

常用的OPTIONS选项包括:

  • -f:实时跟踪容器日志输出;
  • --since:仅显示指定时间之后的日志;
  • --tail:仅显示最后几行日志,默认为所有日志。

例如,要查看名为“mycontainer”的容器的日志,可以使用以下命令:

docker logs mycontainer
  • 1

要实时跟踪容器的日志输出,可以使用以下命令:

docker logs -f mycontainer
  • 1

要仅显示最后10行日志,可以使用以下命令:

docker logs --tail 10 mycontainer
  • 1

要仅显示从指定时间之后的日志,可以使用以下命令:

docker logs --since 2021-01-01 mycontainer
  • 1

需要注意的是,docker logs命令只能查看正在运行的容器的日志。如果要查看已停止的容器的日志,可以使用docker container logs命令。

docker rm

docker rm 命令用于删除已经停止的容器。语法格式如下:

docker rm [OPTIONS] CONTAINER [CONTAINER...]
  • 1

常用的选项包括:

  • -f:强制删除正在运行的容器。
  • -v:删除容器关联的数据卷。

例如,删除名为 my-container 的容器:

docker rm my-container
  • 1

删除所有已停止的容器:

docker rm $(docker ps -a -q)
  • 1

强制删除正在运行的容器:

docker rm -f my-container
  • 1

docker rmi

docker rmi命令用于删除本地的一个或多个镜像。语法如下:

docker rmi [OPTIONS] IMAGE [IMAGE...]
  • 1

常用选项包括:

  • -f, --force:强制删除镜像,即使有容器正在使用它。
  • -no-prune:不删除镜像的中间层(即镜像的每一层),这些中间层可能被其他镜像所共享。

例如,要删除名为“myimage”的镜像,可以运行以下命令:

docker rmi myimage
  • 1

要删除多个镜像,可以将它们的名称列在命令行中:

docker rmi myimage1 myimage2 myimage3
  • 1

如果需要强制删除正在运行中的容器所使用的镜像,可以添加-f选项:

docker rmi -f myimage
  • 1

docker exec

docker exec命令用于在正在运行的Docker容器中执行命令。它的语法如下:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • 1

其中,OPTIONS为可选项,CONTAINER为容器名称或ID,COMMAND为要执行的命令,ARG为命令的参数。

常用的OPTIONS选项包括:

  • -i:以交互模式运行命令。
  • -t:为命令分配一个伪终端。
  • -d:在后台运行命令。
  • --user:指定要执行命令的用户。
  • --workdir:指定执行命令时的工作目录。

例如,要在名为mycontainer的容器中运行一个bash shell,可以使用以下命令:

docker exec -it mycontainer bash
  • 1

docker stats

docker stats命令用于查看Docker容器的实时资源使用情况,包括CPU、内存、网络和磁盘等方面的数据,可以帮助用户监控和优化容器的性能。

语法:

docker stats [OPTIONS] [CONTAINER...]
  • 1

常用的OPTIONS包括:

  • --all或-a:显示所有容器的统计信息,包括停止的容器。
  • --format:指定输出格式,支持Go模板语法。
  • --no-stream或-n:只显示一次容器的统计信息,不进行实时监控。
  • --no-trunc:不截断输出的容器名称。

示例:

  1. 查看所有容器的实时资源使用情况:
docker stats --all
  • 1
  1. 查看指定容器的实时资源使用情况:
docker stats container1 container2
  • 1
  1. 指定输出格式为JSON:
docker stats --format '{{json .}}' container1
  • 1
  1. 只显示一次容器的统计信息:
docker stats --no-stream container1
  • 1

docker save

docker save命令用于将Docker镜像保存成tar包文件。具体语法为:

docker save [OPTIONS] IMAGE [IMAGE...]
  • 1

常用的选项包括:

  • -o, --output:指定输出文件名
  • --quiet, -q:只输出镜像ID

例如,将名为myimage的镜像保存为myimage.tar文件:

docker save -o myimage.tar myimage
  • 1

docker load

docker load命令用于将本地文件系统中的Docker镜像加载到Docker引擎中。这些镜像可以是通过docker save命令保存的.tar文件,也可以是通过其他方式获得的Docker镜像文件。

语法:

docker load [OPTIONS] < FILE
  • 1

参数说明:

  • -i:从标准输入中读取镜像文件,可以省略不写;
  • -q:省略镜像加载过程中的详细输出;
  • --input/-i:从指定文件中读取镜像文件;
  • --quiet/-q:仅输出加载的镜像ID。

示例,从myimage.tar文件中加载镜像到Docker引擎中。:

docker load -i myimage.tar
  • 1

docker export

docker export命令用于将Docker容器的文件系统导出到本地文件系统中的tar归档文件中。

语法:

docker export [OPTIONS] CONTAINER
  • 1

常用选项包括:

  • -o, --output:将导出的内容写入指定的文件中。
  • -h, --help:显示帮助信息。

示例:

将名为my_container的容器的文件系统导出到当前目录下的my_container.tar文件中:

docker export my_container > my_container.tar
  • 1

将名为my_container的容器的文件系统导出到指定目录下的my_container.tar文件中:

docker export -o /path/to/my_container.tar my_container
  • 1

docker import

docker import命令用于将本地文件或者目录打包成镜像,可以用于创建一个新的镜像或者将现有的镜像导入到Docker Registry。

语法如下:

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

常用选项说明:

  • --change=[]:可以指定在导入过程中对镜像进行修改的命令,例如添加新的标签、设置镜像的元数据等。
  • --message="":指定镜像的描述信息。
  • --platform="":指定镜像的平台,例如linux/amd64。
  • --quiet:不输出导入过程中的详细信息。

示例:

将本地文件打包成镜像:

docker import /path/to/local/file myimage:tag
  • 1

将远程URL打包成镜像:

docker import https://example.com/myimage.tar.gz myimage:tag
  • 1

将标准输入数据打包成镜像:

cat /path/to/local/file | docker import - myimage:tag
  • 1

docker inspect

docker inspect命令用于查看Docker对象的详细信息,包括容器、镜像、网络、卷和服务等。使用该命令可以获取对象的各种属性和配置信息,例如IP地址、端口映射、环境变量、挂载点等。该命令的语法如下:

docker inspect [OPTIONS] CONTAINER|IMAGE|NETWORK|VOLUME|SERVICE
  • 1

其中,OPTIONS参数可以包括以下选项:

  • -f:指定输出格式;
  • -s:显示对象的大小信息;
  • --type:指定要查看的对象类型;
  • --format:指定输出格式。

例如,要查看名为my_container的容器的详细信息,可以使用以下命令:

docker inspect my_container
  • 1

该命令将输出包含my_container容器详细信息的JSON格式数据。如果要查看指定对象的某些属性,可以使用-f选项指定输出格式,例如:

docker inspect -f '{{.NetworkSettings.IPAddress}}' my_container
  • 1

该命令将输出my_container容器的IP地址。

docker cp

docker cp命令用于将容器内的文件或目录复制到主机或从主机复制到容器内。它的语法如下:

将容器内的文件或目录复制到主机上:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
  • 1

将主机上的文件或目录复制到容器内:

docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
  • 1

其中,OPTIONS参数包括:

  • -a:将复制的文件或目录的权限、时间戳等信息一并复制过去;
  • --follow-link:如果复制的是符号链接,会复制链接指向的文件而不是链接本身;
  • --no-preserve=mode:不保留文件的权限;
  • --no-preserve=timestamps:不保留文件的时间戳。

例如,将容器内的文件复制到主机上:

docker cp mycontainer:/app/logs/access.log /tmp
  • 1

将主机上的文件复制到容器内:

docker cp /tmp/access.log mycontainer:/app/logs/
  • 1

docker volume

docker volume命令用于管理Docker容器的数据卷。它可以用来创建、列出、删除和查看数据卷。

以下是一些常用的Docker volume命令:

  1. 创建一个数据卷:
docker volume create <volume-name>
  • 1
  1. 列出所有数据卷:
docker volume ls
  • 1
  1. 查看数据卷的详细信息:
docker volume inspect <volume-name>
  • 1
  1. 删除一个数据卷:
docker volume rm <volume-name>
  • 1
  1. 删除所有未被使用的数据卷:
docker volume prune
  • 1
  1. 将数据卷挂载到容器中:
docker run -v <volume-name>:<container-path> <image-name>
##例如
docker run -v mydata:/data myimage
  • 1
  • 2
  • 3

其中,<volume-name>是数据卷的名称,<container-path>是容器中挂载数据卷的路径,<image-name>是镜像名称。

  1. 将数据卷从容器中移除:
docker container rm -v <container-name>
  • 1

docker network

docker提供了多种网络模式,其中包括桥接网络、主机网络、覆盖网络等。docker网络命令可用于管理这些网络。

以下是一些常用的Docker网络命令及其示例:

  1. 列出所有Docker网络。
docker network ls
  • 1
  1. 创建一个新的Docker网络。

示例:创建名为my-network的桥接网络

docker network create my-network
  • 1
  1. 将容器连接到指定的Docker网络。

示例:将名为my-network的网络连接到容器my-container

docker network connect my-network my-container
  • 1
  1. 将容器从指定的Docker网络中断开连接。

示例:将容器my-container从名为my-network的网络中断开连接

docker network disconnect my-network my-container
  • 1
  1. 查看指定的Docker网络的详细信息。

示例:查看名为my-network的网络的详细信息

docker network inspect my-network
  • 1
  1. 删除指定的Docker网络。

示例:删除名为my-network的网络

docker network rm my-network
  • 1

docker bulid

docker build命令用于构建Docker镜像。

语法:

docker build [OPTIONS] PATH | URL | -
  • 1

常用选项:
-t:指定构建出的镜像的名称及标签;
--no-cache:不使用缓存来构建镜像;
--build-arg:设置Dockerfile中的ARG变量的值;
--network:指定构建过程中使用的网络;
--progress:指定构建过程中的输出格式。
示例:

  1. 从本地Dockerfile构建镜像:
docker build -t myimage:1.0 .
  • 1
  1. 从远程Dockerfile构建镜像:
docker build -t myimage:1.0 https://github.com/myuser/myrepo.git####
  • 1
  1. 使用–build-arg设置Dockerfile中的ARG变量的值:
docker build --build-arg MYVAR=myvalue -t myimage:1.0 .
  • 1

docker exec

docker exec命令用于在运行中的Docker容器中执行命令。

语法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

常用选项:
-i:以交互模式运行容器。
-t:为容器分配一个伪终端。
-d:在后台运行容器。
-u:指定执行命令的用户。
-e:设置环境变量。
示例:

  1. 在容器中执行命令:
docker exec -it mycontainer bash
  • 1
  1. 在容器中执行命令并指定用户:
docker exec -u user mycontainer name
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/74005
推荐阅读
相关标签
  

闽ICP备14008679号