docker常用命令[超详细]

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
狂神docker笔记(详细).rar是一份关于Docker的笔记文件,其中内容涵盖了Docker的各个方面,非常详细和全面。 Docker是一种开源的容器化平台,可以将应用程序打包成一个独立的、可移植的容器,并在不同的环境中进行部署和运行。它的优势在于快速、灵活和可移植,能够加速应用程序的开发、测试和部署过程,提高整体的效率和稳定性。 该笔记首先介绍了Docker的基本概念和原理,包括镜像、容器、仓库等。然后详细介绍了Docker的安装和配置方法,包括Windows、Linux和Mac等不同操作系统的安装步骤。同时也介绍了Docker常用的命令和操作技巧,如镜像的拉取和推送、容器的创建和管理等。 除此之外,笔记还介绍了Docker的网络和存储模式,讲解了容器间的网络通信和数据存储方式,以及常用的网络和存储插件的使用方法。 此外,笔记还介绍了Docker的集群和编排工具,如Docker Swarm和Kubernetes等,讲解了如何搭建和管理一个Docker集群,并使用编排工具进行容器的自动化部署和管理。 最后,笔记还提供了一些实际应用场景的案例,包括使用Docker进行开发环境搭建、CI/CD流程集成、微服务架构部署等,帮助读者更好地理解和应用Docker。 总而言之,狂神docker笔记(详细).rar是一份内容非常丰富和详细Docker学习资料,对于想要学习和应用Docker的人来说是一份宝贵的参考材料。希望这份笔记能够帮助读者更好地理解和掌握Docker技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值