Appearance
常用命令
docker build
构建镜像命令,docker 版本大于19.03以上建议使用docker buildx
示例
bash
docker build .参数
| 选项 | 默认值 | 描述 |
|---|---|---|
| --add-host | 添加自定义主机到 IP 映射 (host:ip) | |
| --build-arg | 设置构建时变量 | |
| --cache-from | 要考虑作为缓存源的图像 | |
| --cgroup-parent | 在构建过程中为说明设置父 cgroupRUN | |
| --compress | 使用 gzip 压缩构建上下文 | |
| --cpu-period | 限制 CPU CFS (Completely Fair Scheduler) 周期 | |
| --cpu-quota | 限制 CPU CFS (Completely Fair Scheduler) 配额 | |
| -c, --cpu-shares | CPU 份额(相对权重) | |
| --cpuset-cpus | 允许执行的 CPU (0-3, 0,1) | |
| --cpuset-mems | 允许在其中执行的 MEM (0-3, 0,1) | |
| --disable-content-trust | true | 跳过图像验证 |
| -f, --file | Dockerfile 的名称(默认值为PATH/Dockerfile) | |
| --force-rm | 始终移除中间容器 | |
| --iidfile | 将镜像 ID 写入文件 | |
| --isolation | 容器隔离技术 | |
| --label | 设置图像的元数据 | |
| -m, --memory | 内存限制 | |
| --memory-swap | 交换限制等于内存加上交换:-1 启用无限交换 | |
| --network | API 1.25+在构建过程中设置 RUN 指令的联网模式 | |
| --no-cache | 构建镜像时不要使用缓存 | |
| --platform | API 1.38+如果服务器支持多平台,则设置 platform | |
| --pull | 始终尝试提取较新版本的映像 | |
| -q, --quiet | 成功时禁止生成输出并打印图像 ID | |
| --rm | true | 成功构建后删除中间容器 |
| --security-opt | 安全选项 | |
| --shm-size | 大小/dev/shm | |
| --squash | API 1.25+ 实验性(守护进程):将新构建的层压缩到单个新层中 | |
| -t, --tag | Name 和格式为name:tag | |
| --target | 将目标 build 阶段设置为 build。 | |
| --ulimit | Ulimit 选项 |
docker container run
创建容器并执行
别名:docker run
示例
bash
docker run -d --name my-nginx nginx:latest参数
| 选择 | 默认值 | 描述 |
|---|---|---|
| --add-host | 添加自定义主机到 IP 映射 (host:ip) | |
| --annotation | API 1.43+向容器添加注释(传递到 OCI 运行时) | |
| -a, --attach | 连接到 STDIN、STDOUT 或 STDERR | |
| --blkio-weight | 块 IO (相对权重),介于 10 和 1000 之间,或 0 表示禁用(默认为 0) | |
| --blkio-weight-device | 块 IO 权重(相对设备权重) | |
| --cap-add | 添加 Linux 功能 | |
| --cap-drop | 丢弃 Linux 功能 | |
| --cgroup-parent | 容器的可选父 cgroup | |
| --cgroupns | API 1.41+要使用的 cgroup 命名空间 (host|private) 'host': 在 Docker 主机的 cgroup 命名空间中运行容器 'private': 在其自己的私有 cgroup 命名空间中运行容器 '': 使用守护进程上 default-cgroupns-mode 选项配置的 cgroup 命名空间(默认) | |
| --cidfile | 将容器 ID 写入文件 | |
| --cpu-count | CPU 计数(仅限 Windows) | |
| --cpu-percent | CPU 百分比(仅限 Windows) | |
| --cpu-period | 限制 CPU CFS (Completely Fair Scheduler) 周期 | |
| --cpu-quota | 限制 CPU CFS (Completely Fair Scheduler) 配额 | |
| --cpu-rt-period | API 1.25+限制 CPU 实时周期(以微秒为单位) | |
| --cpu-rt-runtime | API 1.25+限制 CPU 实时运行时间(以微秒为单位) | |
| -c, --cpu-shares | CPU 份额(相对权重) | |
| --cpus | API 1.25+CPU 数量 | |
| --cpuset-cpus | 允许执行的 CPU (0-3, 0,1) | |
| --cpuset-mems | 允许在其中执行的 MEM (0-3, 0,1) | |
| -d, --detach | 在后台运行容器并打印容器 ID | |
| --detach-keys | 覆盖用于分离容器的键序列 | |
| --device | 将主机设备添加到容器 | |
| --device-cgroup-rule | 向 cgroup 允许的设备列表添加规则 | |
| --device-read-bps | 限制设备读取速率(每秒字节数) | |
| --device-read-iops | 限制设备读取速率(每秒 IO) | |
| --device-write-bps | 限制设备的写入速率 (每秒字节数) | |
| --device-write-iops | 限制设备的写入速率(每秒 IO) | |
| --disable-content-trust | true | 跳过图像验证 |
| --dns | 设置自定义 DNS 服务器 | |
| --dns-option | 设置 DNS 选项 | |
| --dns-search | 设置自定义 DNS 搜索域 | |
| --domainname | 容器 NIS 域名 | |
| --entrypoint | 覆盖映像的默认 ENTRYPOINT | |
| -e, --env | 设置环境变量 | |
| --env-file | 读入环境变量文件 | |
| --expose | 公开一个端口或一系列端口 | |
| --gpus | API 1.40+要添加到容器的 GPU 设备('all' 传递所有 GPU) | |
| --group-add | 添加其他群组以加入 | |
| --health-cmd | 运行以检查运行状况的命令 | |
| --health-interval | 运行检查之间的时间 (ms | |
| --health-retries | 报告运行状况不佳所需的连续失败 | |
| --health-start-interval | 接口 1.44+在开始时段运行检查之间的时间 (ms | |
| --health-start-period | API 1.29+容器在开始运行状况重试倒计时之前要初始化的开始时间 (ms | |
| --health-timeout | 允许运行一项检查的最长时间 (ms | |
| --help | 打印使用情况 | |
| -h, --hostname | 容器主机名 | |
| --init | API 1.25+在容器内运行一个 init,用于转发 signals 和 reaps 进程 | |
| -i, --interactive | 即使未连接,也请保持 STDIN 打开 | |
| --io-maxbandwidth | 系统驱动器的最大 IO 带宽限制(仅限 Windows) | |
| --io-maxiops | 系统驱动器的最大 IOps 限制(仅限 Windows) | |
| --ip | IPv4 地址(例如,172.30.100.104) | |
| --ip6 | IPv6 地址(例如,2001:db8::33) | |
| --ipc | 要使用的 IPC 模式 | |
| --isolation | 容器隔离技术 | |
| --kernel-memory | 内核内存限制 | |
| -l, --label | 在容器上设置元数据 | |
| --label-file | 读取标签的行分隔文件 | |
| --link | 向另一个容器添加链接 | |
| --link-local-ip | 容器 IPv4/IPv6 链接本地地址 | |
| --log-driver | 容器的日志记录驱动程序 | |
| --log-opt | 日志驱动程序选项 | |
| --mac-address | 容器 MAC 地址(例如,92:d0:c6:0a:29:33) | |
| -m, --memory | 内存限制 | |
| --memory-reservation | 内存软限制 | |
| --memory-swap | 交换限制等于内存加上交换:“-1”,用于启用无限交换 | |
| --memory-swappiness | -1 | 优化容器内存交换性(0 到 100) |
| --mount | 将文件系统挂载附加到容器 | |
| --name | 为容器分配名称 | |
| --network | 将容器连接到网络 | |
| --network-alias | 为容器添加网络范围的别名 | |
| --no-healthcheck | 禁用任何容器指定的 HEALTHCHECK | |
| --oom-kill-disable | 禁用 OOM Killer | |
| --oom-score-adj | 调整主机的 OOM 首选项(-1000 到 1000) | |
| --pid | 要使用的 PID 命名空间 | |
| --pids-limit | 调整容器 pids 限制(设置为 -1 表示无限制) | |
| --platform | 接口 1.32+如果服务器支持多平台,则设置 platform | |
| --privileged | 为此容器授予扩展权限 | |
| -p, --publish | 将容器的端口发布到主机 | |
| -P, --publish-all | 将所有公开的端口发布到随机端口 | |
| --pull | missing | 在运行之前拉取镜像 (, ,alwaysmissingnever) |
| -q, --quiet | Suppress the pull 输出 | |
| --read-only | 以只读方式挂载容器的根文件系统 | |
| --restart | no | 容器退出时要应用的重启策略 |
| --rm | 容器退出时自动删除容器及其关联的匿名卷 | |
| --runtime | 用于此容器的运行时 | |
| --security-opt | 安全选项 | |
| --shm-size | /dev/shm 的大小 | |
| --sig-proxy | true | 代理接收到进程的信号 |
| --stop-signal | 停止容器的信号 | |
| --stop-timeout | API 1.25+停止容器的超时 (秒) | |
| --storage-opt | 容器的存储驱动程序选项 | |
| --sysctl | Sysctl 选项 | |
| --tmpfs | 挂载 tmpfs 目录 | |
| -t, --tty | 分配伪 TTY | |
| --ulimit | Ulimit 选项 | |
| -u, --user | 用户名或 UID (格式: <name | |
| --userns | 要使用的用户命名空间 | |
| --uts | 要使用的 UTS 命名空间 | |
| -v, --volume | 绑定挂载卷 | |
| --volume-driver | 容器的可选卷驱动程序 | |
| --volumes-from | 从指定的容器挂载卷 | |
| -w, --workdir | 容器内的工作目录 |
docker container stats
显示容器的实时资源使用情况统计信息
别名:docker stats
| 参数 | 描述 |
|---|---|
| -a, --all | Show all containers (default show just running) (默认仅显示正在运行的容器) |
| --format | 使用自定义模板格式化输出: 'table':以带有列标题的表格格式打印输出(默认) 'table TEMPLATE':使用给定的 Go 模板以表格格式打印输出 'json':以 JSON 格式打印 'TEMPLATE':使用给定的 Go 模板打印输出。 指https://docs.docker.com/go/formatting/有关使用模板设置输出格式的更多信息 |
| --no-stream | 禁用流式处理统计信息,仅提取第一个结果 |
| --no-trunc | 不截断输出 |
docker container ls
列出容器
别名: docker container list docker container ps docker ps
| 参数 | 默认值 | 描述 |
|---|---|---|
| -a, --all | Show all containers (default show just running) (默认仅显示正在运行的容器) | |
| -f, --filter | 根据提供的条件筛选输出 | |
| --format | 使用自定义模板格式化输出: 'table':以带有列标题的表格格式打印输出(默认) 'table TEMPLATE':使用给定的 Go 模板以表格格式打印输出 'json':以 JSON 格式打印 'TEMPLATE':使用给定的 Go 模板打印输出。 指https://docs.docker.com/go/formatting/有关使用模板设置输出格式的更多信息 | |
| -n, --last | -1 | 显示 n 个最后创建的容器(包括所有状态) |
| -l, --latest | 显示最新创建的容器(包括所有状态) | |
| --no-trunc | 不截断输出 | |
| -q, --quiet | 仅显示容器 ID | |
| -s, --size | 显示总文件大小 |
docker container logs
获取容器的日志
别名:docker logs
| 参数 | 默认值 | 描述 |
|---|---|---|
| --details | 显示提供给日志的额外详细信息 | |
| -f, --follow | 遵循日志输出 | |
| --since | 显示自时间戳(例如 )或相对(例如 ) 以来的日志 42 分钟)2013-01-02T13:23:37Z42m | |
| -n, --tail | all | 从日志末尾开始显示的行数 |
| -t, --timestamps | 显示时间戳 | |
| --until | API 1.35+在时间戳(例如 2013-01-02T13:23:37Z)或相对(例如 42m)之前显示日志 42 分钟) |
示例:
bash
docker logs -f --until=2s testdocker container exec
在运行的容器中执行命令
别名:docker exec
| 参数 | 默认值 | 描述 |
|---|---|---|
| -d, --detach | 在后台运行命令,并打印新分配的容器 ID | |
| --detach-keys | 覆盖用于后台模式的中断键 | |
| --env-file | 从指定文件添加环境变量 | |
| --interactive, -i | 即使未附加也保持 STDIN 打开 | |
| --privileged | 赋予扩展权限 |