18
2024
04
11:25:10

docker常用命令[超详细]



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

docker命令

docker ps

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

docker ps [OPTIONS]

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

  • -a:列出所有的容器,包括已经停止的容器。

  • -f:根据条件过滤容器。比如,docker ps -f status=exited可以列出所有已经停止的容器。

  • -n:显示最近创建的n个容器。

  • -q:仅显示容器的ID。

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

docker ps

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

docker ps -a

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

docker ps -n 3 -q

docker pull

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

docker pull [OPTIONS] [IMAGES]

常用选项:

  • --all-tags:拉取镜像的所有标签

  • --quiet, -q:只输出镜像ID

  • --disable-content-trust:禁用内容信任验证

例如:拉取官方nginx镜像:

docker pull nginx

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

docker pull nginx:1.19.2

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

docker pull --all-tags nginx

docker images

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

语法:

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

参数:

  • -a:列出所有镜像,包括中间层镜像。

  • -q:只显示镜像ID。

  • --no-trunc:显示完整的镜像ID。

  • --digests:显示镜像的摘要信息。

  • --format:指定输出的格式。

  • --filter:根据条件过滤镜像。

示例:

  1. 列出本地主机上的所有镜像:

docker images
  1. 列出指定仓库的镜像:

docker images ubuntu
  1. 列出指定标签的镜像:

docker images ubuntu:18.04
  1. 列出所有镜像的ID:

docker images -q
  1. 列出所有镜像的完整ID:

docker images -q --no-trunc
  1. 列出所有镜像的摘要信息:

docker images --digests
  1. 根据条件过滤镜像:

docker images --filter "dangling=true"

docker run

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

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • -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

docker start

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

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

常用的选项包括:

  • -a, --attach:附加到容器的标准输入、输出和错误输出。

  • -i, --interactive:启用容器的标准输入,通常与 -a 一起使用。

  • -d, --detach:在后台运行容器。

  • -p, --publish:将容器内部端口映射到主机端口。

  • -P, --publish-all:将所有容器内部暴露的端口映射到主机端口。

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

docker start -ai mycontainer

docker restart

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

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

其中,OPTIONS包括:

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

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

docker restart container1

docker info

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

使用方法:

docker info

docker logs

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

docker logs [OPTIONS] CONTAINER

常用的OPTIONS选项包括:

  • -f:实时跟踪容器日志输出;

  • --since:仅显示指定时间之后的日志;

  • --tail:仅显示最后几行日志,默认为所有日志。

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

docker logs mycontainer

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

docker logs -f mycontainer

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

docker logs --tail 10 mycontainer

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

docker logs --since 2021-01-01 mycontainer

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

docker rm

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

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

常用的选项包括:

  • -f:强制删除正在运行的容器。

  • -v:删除容器关联的数据卷。

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

docker rm my-container

删除所有已停止的容器:

docker rm $(docker ps -a -q)

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

docker rm -f my-container

docker rmi

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

docker rmi [OPTIONS] IMAGE [IMAGE...]

常用选项包括:

  • -f, --force:强制删除镜像,即使有容器正在使用它。

  • -no-prune:不删除镜像的中间层(即镜像的每一层),这些中间层可能被其他镜像所共享。

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

docker rmi myimage

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

docker rmi myimage1 myimage2 myimage3

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

docker rmi -f myimage

docker exec

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

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

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

常用的OPTIONS选项包括:

  • -i:以交互模式运行命令。

  • -t:为命令分配一个伪终端。

  • -d:在后台运行命令。

  • --user:指定要执行命令的用户。

  • --workdir:指定执行命令时的工作目录。

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

docker exec -it mycontainer bash

docker stats

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

语法:

docker stats [OPTIONS] [CONTAINER...]

常用的OPTIONS包括:

  • --all或-a:显示所有容器的统计信息,包括停止的容器。

  • --format:指定输出格式,支持Go模板语法。

  • --no-stream或-n:只显示一次容器的统计信息,不进行实时监控。

  • --no-trunc:不截断输出的容器名称。

示例:

  1. 查看所有容器的实时资源使用情况:

docker stats --all
  1. 查看指定容器的实时资源使用情况:

docker stats container1 container2
  1. 指定输出格式为JSON:

docker stats --format '{{json .}}' container1
  1. 只显示一次容器的统计信息:

docker stats --no-stream container1

docker save

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

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

常用的选项包括:

  • -o, --output:指定输出文件名

  • --quiet, -q:只输出镜像ID

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

docker save -o myimage.tar myimage

docker load

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

语法:

docker load [OPTIONS] < FILE

参数说明:

  • -i:从标准输入中读取镜像文件,可以省略不写;

  • -q:省略镜像加载过程中的详细输出;

  • --input/-i:从指定文件中读取镜像文件;

  • --quiet/-q:仅输出加载的镜像ID。

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

docker load -i myimage.tar

docker export

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

语法:

docker export [OPTIONS] CONTAINER

常用选项包括:

  • -o, --output:将导出的内容写入指定的文件中。

  • -h, --help:显示帮助信息。

示例:

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

docker export my_container > my_container.tar

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

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

docker import

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

语法如下:

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

常用选项说明:

  • --change=[]:可以指定在导入过程中对镜像进行修改的命令,例如添加新的标签、设置镜像的元数据等。

  • --message="":指定镜像的描述信息。

  • --platform="":指定镜像的平台,例如linux/amd64。

  • --quiet:不输出导入过程中的详细信息。

示例:

将本地文件打包成镜像:

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

将远程URL打包成镜像:

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

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

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

docker inspect

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

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

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

  • -f:指定输出格式;

  • -s:显示对象的大小信息;

  • --type:指定要查看的对象类型;

  • --format:指定输出格式。

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

docker inspect my_container

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

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

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

docker cp

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

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

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

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

docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

其中,OPTIONS参数包括:

  • -a:将复制的文件或目录的权限、时间戳等信息一并复制过去;

  • --follow-link:如果复制的是符号链接,会复制链接指向的文件而不是链接本身;

  • --no-preserve=mode:不保留文件的权限;

  • --no-preserve=timestamps:不保留文件的时间戳。

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

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

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

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

docker volume

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

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

  1. 创建一个数据卷:

docker volume create <volume-name>
  1. 列出所有数据卷:

docker volume ls
  1. 查看数据卷的详细信息:

docker volume inspect <volume-name>
  1. 删除一个数据卷:

docker volume rm <volume-name>
  1. 删除所有未被使用的数据卷:

docker volume prune
  1. 将数据卷挂载到容器中:

docker run -v <volume-name>:<container-path> <image-name>##例如docker run -v mydata:/data myimage

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

  1. 将数据卷从容器中移除:

docker container rm -v <container-name>

docker network

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

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

  1. 列出所有Docker网络。

docker network ls
  1. 创建一个新的Docker网络。

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

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

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

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

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

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

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

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

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

docker network rm my-network

docker bulid

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

语法:

docker build [OPTIONS] PATH | URL | -

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

  1. 从本地Dockerfile构建镜像:

docker build -t myimage:1.0 .
  1. 从远程Dockerfile构建镜像:

docker build -t myimage:1.0 https://github.com/myuser/myrepo.git####
  1. 使用–build-arg设置Dockerfile中的ARG变量的值:

docker build --build-arg MYVAR=myvalue -t myimage:1.0 .

docker exec

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

语法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

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

  1. 在容器中执行命令:

docker exec -it mycontainer bash
  1. 在容器中执行命令并指定用户:

docker exec -u user mycontainer name


本文链接:https://www.hqyman.cn/post/5802.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: