欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > Docker命令

Docker命令

2025/4/16 9:51:59 来源:https://blog.csdn.net/2301_80163789/article/details/147114403  浏览:    关键词:Docker命令

Docker命令

1. 基础命令

docker login

登录到一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。

docker login [options] [server]

选项:

  • -u: 登录的用户名。
  • **-p:**登录的密码(不建议使用)。

这两个选项是用于在命令行中提前指定登录的账号和密码,即使不提前输入,后续在 login 的中途也要输入。且使用 -p 选项提前输入密码,会导致密码信息存储在 history 中,有安全隐患。

docker logout

登出一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。

docker logout

docker pull

从镜像仓库中拉取或更新指定镜像。 如果是拉取知名镜像,建议进入 Docker Hub 网站浏览相关镜像的命令。

docker pull [options] [name:tag] #或 [name@digest]

选项:

  • -a: 拉取所有 tagged 镜像。
  • –disable-content-trust: 忽略镜像的校验,默认开启(有的仓库不是向所有人开放的)。

[name@digest] 是通过 digest 来拉取镜像的方法,但实际不推荐使用,因为 tag 能够清晰地显示镜像的版本,而 digest 又长又不够清晰。

docker push

将本地的镜像上传到镜像仓库,需要先登录到镜像仓库。如果要上传到自己的镜像仓库,需要到 Docker Hub 上注册一个。且如果是 push 从官方或社区拉取的镜像,还需要使用 docker tag 命令标记别名后才能上传(否则会上传到官方或社区的仓库,但又因为账号没有上传的权限而失败)。

docker push [options] [name:tag]

选项:

  • -a: 推送所有 tagged 镜像。
  • –disable-content-trust: 忽略镜像的校验,默认开启。

docker search

从 Docker Hub 查找镜像,因为使用网页浏览的方法更方便,所以不推荐使用。

docker search [options] [name]
  • –no-trunc: 显示完整的镜像描述。
  • -f [过滤条件]: 过滤一些信息。

2. 镜像命令

docker images

用于列出本地镜像。

docker images [options] [repository[:tag]]

选项:

  • -a: 列出本地所有的镜像(含中间映像层)。
  • –digests: 显示镜像的摘要信息。
  • –format: 指定返回值的模板文件。
  • –no-trunc: 显示完整的镜像信息。
  • -q: 只显示镜像 ID。

列出本地所有镜像:

docker images

列出本地镜像中为 nginx 的镜像列表:

docker images nginx

docker image inspcet

用于查看镜像的详细信息。

docker image inspect  [image:tag]

如:

docker image inspect nginx:1.23.3

docker tag

标记本地镜像,将其归入某一仓库,从官方或社区拉取的镜像,需要进行 docker tag 之后才可以更新到自己的镜像仓库中。

docker tag [source_image:tag] [target_image:tag]

docker rmi

docker rmi 用于删除一个镜像。注意,如果一个或多个容器在使用要删除的镜像,需要使用 docker rm 将使用镜像的容器全部删除,再删除镜像,不建议使用 -f 强制删除镜像。

docker rmi [options] [image]

选项:

  • -f: 强制删除。
  • –no-prune: 不移除该镜像的过程镜像,默认移除。

docker save

用于将镜像打包成 .tar 文件保存到当前目录。

docker save -o [file.tar] [image]

也可以写成

docker [image] save -o [file.tar]

选项:

  • -o: 自定义输出到的文件名。

docker load

用于将 docker save 打包的镜像导入。

docker load [options]

选项:

  • **-i,–input:**指定导入的文件。
  • -q,–quiet: 精简输出信息。

docker history

用于显示镜像的历史信息。

docker history [options]

选项:

  • -H,–humam: 大小和日期采用人类易读的格式显示。
  • –no-trunc: 显示全部信息,不截断。
  • -q,–quiet: 只显示镜像 id 信息。

docker image prune

用于删除不使用的镜像。

docker image prune [options]

选项:

  • -a,–all: 删除全部不使用的镜像(包括一个容器都不使用的镜像)。
  • –filter [filter]: 指定过滤条件。
  • -f,–force: 不提示是否删除。

docker import

用于将 .tar 格式的容器导入。docker importdocker load 的区别是,load 是镜像进行归档文件之间的转换,而 import 是容器进行归档文件的转换,import 导出的容器的元数据会全部丢失。

docker import [options] [file.tar]

选项:

  • -c: 应用 docker 指令创建镜像。
  • -m: 提交时的说明文字。

3. 容器命令

docker create

创建一个新的容器。注意 docker create 没有 -d 选项。

docker create [options] [image[arg...]]

选项:

  • -i: 以交互模式运行容器,通常与 -t 同时使用。

  • -P: 随机端口映射,容器内部端口随机映射到主机的端口。

  • -p: 指定端口映射,格式为:主机端口:容器端口。

    如果不使用 -p 或 -P,容器的网络相当于是与外部隔绝的。

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用。

    如果不使用 -i 在终端中输入的字符将不能传输到容器中。

  • –name=“newname”: 为容器指定一个名称。

    如果不指定名字,在 docker ps 命令中打印出来的将是 docker 为我们取的随机名字。

  • -h “hostname”: 指定容器的 hostname。

  • -e env=“val”: 向容器设置一个名为 env 值为 val 的环境变量。

  • –cpuset-cpus=“0-2” or --cpuset-cpus=“0,1,2”: 绑定容器到指定 CPU 运行。

  • **-m :**设置容器使用内存最大值。

  • –network=“bridge”: 指定容器的网络连接类型。

  • –link=[]: 添加链接到另一个容器。

    意味着被连接的容器可进行局域网通信,这种连接是单向的。

  • –volume , -v: 绑定一个卷。

  • –rm :shell 退出的时候自动删除容器。

docker run

创建一个新的容器并运行一个命令。

docker run [options] [image command arg...]

选项:

  • -d: 后台运行容器,并返回容器 ID。

  • -i: 以交互模式运行容器,通常与 -t 同时使用。

  • -P: 随机端口映射,容器内部端口随机映射到主机的端口。

  • -p: 指定端口映射,格式为:主机端口:容器端口。

    如果不使用 -p 或 -P,容器的网络相当于是与外部隔绝的。

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用。

    如果不使用 -i 在终端中输入的字符将不能传输到容器中。

  • –name=“newname”: 为容器指定一个名称。

    如果不指定名字,在 docker ps 命令中打印出来的将是 docker 为我们取的随机名字。

  • -h “hostname”: 指定容器的 hostname。

  • -e env=“val”: 向容器设置一个名为 env 值为 val 的环境变量。

  • –cpuset-cpus=“0-2” or --cpuset-cpus=“0,1,2”: 绑定容器到指定 CPU 运行。

  • **-m :**设置容器使用内存最大值。

  • –network=“bridge”: 指定容器的网络连接类型。

  • –link=[]: 添加链接到另一个容器。

    意味着被连接的容器可进行局域网通信,这种连接是单向的。

  • –volume , -v: 绑定一个卷。

  • –rm :shell 退出的时候自动删除容器。

docker ps

主要用于打印容器信息等功能。

docker ps [options]
  • -a : 显示所有的容器,包括未运行的。
  • -f : 根据条件过滤显示的内容。
  • –format : 指定返回值的模板文件。如 json 或者 table。
  • -l : 显示 latest 的容器。
  • -n : 列出最近创建的 n 个容器。
  • –no-trunc : 不截断输出。
  • -q : 静默模式,只显示容器编号。
  • -s : 显示总的文件大小。

docker log

用于查看容器的日志信息。

docker log [options] [container]

选项:

  • -f,–follow: 持续实时输出日志信息。
  • –since: 显示从某个时间开始的所有日志,如 2025-1-30
  • -t,–timestamps: 显示时间戳。
  • -n,–tail: 仅显示最新 n \text n n 条日志。

docker attach

用于连接到正在运行中的容器。

docker attach [options] [container]

选项:

  • –sig-proxy=[bool]: 是否将所有信号代理,默认是 true ,如果设置为 false,退出时(如按下 Ctrl+C)就不会影响容器。

docker exec

在容器中执行命令。如果只使用 -it 选项,则于 docker attach 行为相同。如果 -it 后跟上其他命令,则执行完命令后就回到容器外,而不是 hang 入容器。

docker exec [options] [command [arg...]]

选项:

  • -d: 分离模式,程序在后台运行。
  • -i: 即使没有附加也保持 STDIN 打开。
  • -t: 分配一个伪终端。
  • -e: 设置环境变量。
  • -u,–user: 指定用户 <name|uid>[:group|gid]
  • -w,–workdir: 指定工作目录,即进入容器后的目录。

docker start

用于启动停止的容器。

docker start [container]

docker stop

用于停止运行中的容器。注意 docker stop 发送的是 SIGTERM 信号,docker log 会提示容器 gracefully shutting down。

docker stop [options] [container]

选项:

  • -s: 发送信号。

docker restart

用于重启运行中的容器。

docker restart [options] [container]

选项:

  • -s: 发送信号。

docker kill

用于强制退出容器。注意 docker kill 发送的是 SIGKILL 信号,docker 会来不及保存或输出任何信号就退出。

docker kill [options] [container]

选项:

  • -s: 发送的信号。

docker top

用于查看容器中运行的进程信息,支持 ps 命令的选项。

docker top [ps options]

选项:

docker stats

用于查看容器的资源使用情况,包括 CPU、内存、网络 I/O 等。

docker stats [options] [container...]

选项:

  • **-a,–all:**显示所有的容器,包括未运行的。
  • –format: 指定返回的模板文件。如 table、json
  • –no-stream: 只显示一条当前状态信息(不反复刷新)。
  • –no-trunc: 不截断输出。

CONTAINER IDNAME 为容器 ID 和名称。

CPU%MEM% 为容器的 CPU 和 内存使用百分比。

MEM USAGE/LIMIT 为容器正在使用的总内存/允许使用的内存总量。

BLCOK I/O 为容器从主机上的块设备读取和写入的数据量。

PIDs 为容器创建的进程和线程数。

docker container inspect

用于查看容器的详细信息,如果不指定容器会自动获取。

docker container inspect [options] [container]

选项:

  • -f: 指定返回值的模板文件。如 table、json。
  • -s: 显示总的文件大小。

docker port

用于显示指定容器的端口映射。

docker port [container]

0.0.0.0 表示 IPv4。

[::] 表示 IPv6。

docker cp

用于在容器和宿主机之间拷贝文件。

docker cp [container:src_path] [dest_path]	#拷贝容器文件到宿主机
docker cp [src_path] [container:dest_path]	#拷贝宿主机文件到容器

docker diff

检查容器里文件结构的更改。

docker diff [container]

docker commit

从容器创建一个新的镜像。

docker commit [options] [container [repository:tag]]

选项:

  • -a: 提交的镜像作者。
  • -c: 使用 Dockerfile 指令来创建镜像,可以修改启动指令。
  • -m: 提交时的说明文字。
  • -p: 在 commit 时,将容器停止。

docker pause

用于暂停容器中所有的进程。

docker pause [container]

docker unpause

用于恢复容器中所有暂停的进程。

docker unpause [container]

docker rm

删除停止的容器。

docker rm [options] [container]

选项:

  • -f: 通过 SIGKILL 信号强制删除一个运行中的容器。

删除所有停止的容器:

docker rm $(docker ps -a -p)

docker export

用于导出容器内容为 .tar 文件。

docker export [options] [container]

选项:

  • -o: 指明写入文件的名字。

docker wait

用于阻塞等待指定运行中的容器停止,并打印出它的退出码。

docker wait [container]

docker rename

用于重命名容器。

docker rename [container] [new_name]

docker container prune

用于删除所有停止的容器。

docker container prune [options]

选项:

  • -f,–force: 不提示是否确认操作。

docker update

用于更新容器的配置。

docker update [options] [container]

选项:

  • –cpus: cpu 数量。
  • –cpuset-cpus: 使用哪些 cpu。
  • –memory: 内存限制。
  • –memory-swap: 交换内存。
  • –cpu-period: 是用来指定容器对 CPU 的使用要在多长时间内做一次重新分配。
  • –cpu-quota: 是用来指定在这个周期内,最多可以有多少时间用来跑这个容器。

4. 容器的批量处理

根据名称过滤得到容器编号:

docker container ls -qf name=xxx

-q 表示只输出容器 ID。

根据状态过滤容器信息:

docker container ls --filter status=running

静默获取全部容器 ID:

docker container ls -aq

-a 表示 all 显示包括不运行的容器,-q 表示只输出容器 ID。

过滤镜像名或 ID 为 xxx 的容器信息:

docker container ls --filter ancestor=xxx

其他:

docker 的命令都可以通过 `` 达到类似于管道的效果,如启动所有容器可以用:

docker run 'docker ps -a'

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词