Docker命令大全

引言

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。以下是一些常用的Docker命令及其详细解释:

 

Docker镜像操作命令

docker pull

从Docker Hub或其他Docker注册服务器下载镜像。

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

    • --all-tags-a: 下载存储库的所有标签

    • --disable-content-trust: 跳过镜像验证

  • NAME: 镜像名称

  • TAG|@DIGEST: 镜像标签或摘要

 

docker images

列出所有本地镜像。

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

    • --all-a: 显示所有镜像(默认隐藏中间层镜像)

    • --digests: 显示摘要

    • --filter-f: 根据提供的条件过滤输出

    • --format: 使用Go模板打印漂亮的输出

    • --no-trunc: 不要截断输出

    • --quiet-q: 只显示镜像ID

  • REPOSITORY[:TAG]: 镜像名称和标签

 

docker rmi

删除一个或多个镜像。

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

    • --force-f: 强制删除镜像

    • --no-prune: 不删除未标记的父镜像

  • IMAGE: 镜像名称或ID

 

docker build

使用Dockerfile创建一个新的镜像。

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

    • --build-arg: 设置构建时的变量

    • --cpu-shares: CPU份额(相对权重)

    • --cpu-period: CPU CFS(完全公平调度器)周期

    • --cpu-quota: CPU CFS配额

    • --cpuset-cpus: 允许执行的CPU

    • --cpuset-mems: 允许执行的内存节点

    • --disable-content-trust: 跳过镜像验证

    • --file-f: 指定Dockerfile路径

    • --force-rm: 总是删除中间容器

    • --isolation: 容器隔离技术

    • --label: 设置镜像使用的元数据

    • --memory-m: 设置内存限制

    • --memory-swap: 设置交换限制为内存+交换,-1表示无限制

    • --no-cache: 构建镜像过程中不使用缓存

    • --pull: 总是尝试获取更新版本的镜像

    • --quiet-q: 抑制构建输出

    • --rm: 构建成功后删除中间容器

    • --shm-size/dev/shm的大小

    • --tag-t: 镜像的名字及标签

    • --ulimit: Ulimit选项

  • PATH | URL | -: Dockerfile的路径或URL,或使用-从标准输入读取Dockerfile

 

docker tag

为镜像添加标签。

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • SOURCE_IMAGE[:TAG]: 源镜像名称和标签

  • TARGET_IMAGE[:TAG]: 目标镜像名称和标签

 

Docker容器操作命令

docker run

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

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:

    • --detach-d: 在后台运行容器并打印容器ID

    • --name: 为容器指定一个名称

    • --publish-p: 发布容器的端口到主机

    • --restart: 容器退出时的重启策略

    • --rm: 容器退出时自动删除

    • --volume-v: 绑定一个卷

    • --env-e: 设置环境变量

    • --link: 添加链接到另一个容器

    • --expose: 暴露一个端口或一组端口

    • --network: 连接到网络

    • --ip: 为容器指定IP地址

    • --dns: 设置自定义DNS服务器

    • --entrypoint: 覆盖默认的ENTRYPOINT

    • --user-u: 指定运行用户

    • --workdir-w: 工作目录

    • --add-host: 添加自定义主机到/etc/hosts

    • --hostname-h: 容器的主机名

    • --read-only: 将容器文件系统设置为只读

    • --pid: 与主机上的另一个容器共享进程命名空间

    • --ipc: 与主机上的另一个容器共享IPC命名空间

    • --uts: 与主机上的另一个容器共享UTS命名空间

    • --security-opt: 安全选项

    • --cap-add: 添加Linux能力

    • --cap-drop: 删除Linux能力

    • --privileged: 给予扩展的权限

    • --device: 添加主机设备给容器

    • --tmpfs: 挂载一个tmpfs目录

    • --stop-signal: 设置停止容器的信号

    • --stop-timeout: 容器停止超时时间

    • --health-cmd: 健康检查命令

    • --health-interval: 健康检查间隔

    • --health-retries: 健康检查重试次数

    • --health-timeout: 健康检查超时时间

    • --health-start-period: 应用健康检查前的初始延迟

  • IMAGE: 使用的镜像

  • COMMAND: 在容器中运行的命令

  • ARG...: 传递给命令的参数

 

docker ps

列出所有正在运行的容器。

docker ps [OPTIONS]
  • OPTIONS:

    • --all-a: 显示所有容器(默认只显示正在运行的)

    • --filter-f: 根据提供的条件过滤输出

    • --format: 使用Go模板打印漂亮的输出

    • --last-n: 显示最后创建的n个容器

    • --latest-l: 显示最新创建的容器(包括所有状态)

    • --no-trunc: 不要截断输出

    • --quiet-q: 只显示容器ID

    • --size-s: 显示总文件大小

docker stop

停止一个或多个正在运行的容器。

docker stop [OPTIONS] CONTAINER [CONTAINER...]
  • OPTIONS:

    • --time-t: 在停止容器之前等待的秒数

  • CONTAINER: 容器名称或ID

 

docker rm

删除一个或多个容器。

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

    • --force-f: 强制删除正在运行的容器(使用SIGKILL)

    • --link-l: 删除指定的链接

    • --volumes-v: 删除与容器关联的匿名卷

  • CONTAINER: 容器名称或ID

 

docker exec

在运行的容器中执行命令。

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

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

    • --interactive-i: 保持STDIN打开

    • --tty-t: 分配一个伪终端

    • --user-u: 以指定的用户身份运行命令

    • --workdir-w: 在容器内的工作目录

  • CONTAINER: 容器名称或ID

  • COMMAND: 要执行的命令

  • ARG...: 传递给命令的参数

 

docker start

启动一个或多个已停止的容器。

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

    • --attach-a: 附加STDIN、STDOUT和STDERR

    • --interactive-i: 附加容器的STDIN

  • CONTAINER: 容器名称或ID

 

docker restart

重启一个或多个正在运行的容器。

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

    • --time-t: 在停止容器之前等待的秒数

  • CONTAINER: 容器名称或ID

 

Docker网络操作命令

docker network

管理Docker网络。

docker network COMMAND
  • COMMAND:

    • connect: 连接一个容器到一个网络

    • create: 创建一个网络

    • disconnect: 断开一个容器的网络

    • inspect: 显示一个或多个网络的详细信息

    • ls: 列出所有网络

    • prune: 删除所有未使用的网络

    • rm: 删除一个或多个网络

 

docker network create

创建一个网络。

docker network create [OPTIONS] NETWORK
  • OPTIONS:

    • --driver-d: 指定网络驱动

    • --ip-range: 为容器分配IP地址的范围

    • --subnet: 子网在局域网中的IP段

    • --gateway: 子网的IP地址

    • --ipv6: 启用IPv6网络

    • --internal: 限制外部访问

    • --label: 设置网络使用的元数据

  • NETWORK: 网络名称

 

docker network connect

连接一个容器到一个网络。

docker network connect [OPTIONS] NETWORK CONTAINER
  • OPTIONS:

    • --alias: 为容器在网络上添加网络范围别名

    • --ip: 为容器指定IP地址

    • --ip6: 为容器指定IPv6地址

    • --link: 添加链接到另一个容器

    • --link-local-ip: 为容器添加一个链接范围IP地址

  • NETWORK: 网络名称

  • CONTAINER: 容器名称或ID

 

docker network disconnect

断开一个容器的网络。

docker network disconnect [OPTIONS] NETWORK CONTAINER
  • NETWORK: 网络名称

  • CONTAINER: 容器名称或ID

 

Docker数据管理命令

docker volume

管理Docker卷。

docker volume COMMAND
  • COMMAND:

    • create: 创建一个卷

    • inspect: 显示一个或多个卷的详细信息

    • ls: 列出所有卷

    • prune: 删除未使用的卷

    • rm: 删除一个或多个卷

 

docker volume create

创建一个卷。

docker volume create [OPTIONS] [VOLUME]
  • OPTIONS:

    • --driver-d: 指定卷驱动

    • --label: 设置卷使用的元数据

  • VOLUME: 卷名称

 

docker volume inspect

显示一个或多个卷的详细信息。

docker volume inspect [OPTIONS] VOLUME [VOLUME...]
  • VOLUME: 卷名称

 

docker volume rm

删除一个或多个卷。

docker volume rm [OPTIONS] VOLUME [VOLUME...]
  • VOLUME: 卷名称

 

Docker系统信息命令

docker info

显示Docker系统的信息。

docker info [OPTIONS]
  • OPTIONS:

    • --format: 使用Go模板打印漂亮的输出

 

docker system df

显示Docker磁盘使用情况。

docker system df [OPTIONS]
  • OPTIONS:

    • --verbose-v: 显示详细信息

 

Docker其他常用命令

docker logs

获取容器的日志。

docker logs [OPTIONS] CONTAINER
  • OPTIONS:

    • --details: 显示额外的细节

    • --follow-f: 跟踪日志输出

    • --since: 显示自某个时间戳之后的日志

    • --tail-n: 从日志末尾显示多少行

    • --timestamps-t: 显示时间戳

    • --until: 显示自某个时间戳之前的日志

  • CONTAINER: 容器名称或ID

 

docker commit

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

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

    • --author: 作者信息

    • --change-c: 应用Dockerfile指令来创建镜像

    • --message-m: 提交消息

    • --pause-p: 在提交期间暂停容器

  • CONTAINER: 容器名称或ID

  • REPOSITORY[:TAG]: 新镜像的名称和标签

 

docker history

显示一个镜像的历史。

docker history [OPTIONS] IMAGE
  • OPTIONS:

    • --human-H: 以可读的格式打印大小和日期

    • --no-trunc: 不要截断输出

    • --quiet-q: 只显示ID

  • IMAGE: 镜像名称或ID

 

docker inspect

显示一个或多个容器或镜像的详细信息。

docker inspect [OPTIONS] NAME|ID [NAME|ID...]
  • OPTIONS:

    • --format-f: 使用Go模板打印漂亮的输出

 

docker cp

在本地文件系统和容器之间复制文件/文件夹。

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

    • --archive-a: 复制并解压文件或目录

    • --follow-link: 始终复制符号链接本身

  • CONTAINER:SRC_PATH: 容器中的源路径

  • DEST_PATH|-: 本地目标路径或-表示将内容写入标准输出

  • SRC_PATH|-: 本地源路径或-表示从标准输入读取内容

 

docker diff

检查容器文件系统的更改。

docker diff CONTAINER
  • CONTAINER: 容器名称或ID

 

Docker Compose命令

docker-compose up

启动并运行整个应用栈。

docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
  • options:

    • -d: 在后台运行容器

    • --no-color: 不使用颜色

    • --no-deps: 不启动服务所依赖的服务

    • --force-recreate: 重新创建容器

    • --build: 在启动容器前构建镜像

  • SERVICE: 服务名称

 

docker-compose down

停止并删除整个应用栈。

docker-compose down [options]
  • options:

    • -v--volumes: 删除命名的卷

    • --rmi: 删除所有服务的镜像

 

docker-compose ps

列出项目中所有容器。

docker-compose ps [options] [SERVICE...]
  • options:

    • -q--quiet: 只显示ID

  • SERVICE: 服务名称

 

docker-compose build

构建或重新构建服务。

docker-compose build [options] [--build-arg key=val...] [SERVICE...]
  • options:

    • --no-cache: 构建镜像过程中不使用缓存

    • --force-rm: 总是删除中间容器

    • --pull: 总是尝试获取更新版本的镜像

  • SERVICE: 服务名称

 

docker-compose config

验证和查看Compose文件。

docker-compose config [options]
  • options:

    • --resolve-image-digests: 将镜像标签解析为摘要

    • --services: 只打印服务名称

    • --volumes: 只打印卷名称

 

总结

以上是Docker的一些常用命令,通过这些命令,你可以管理Docker镜像、容器、网络、数据卷等。熟练掌握这些命令可以极大地提高Docker的使用效率。

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码快撩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值