🐳 = 兼容 Docker
🤓 = nerdctl 专用
🟦 = 已启用 Windows
未列出的docker
CLI 标志表示 CLI 中尚未实现nerdctl
。这并不一定意味着 containerd 中缺少相应的功能。
- 容器管理
- 建造
- 图像管理
- 註冊
- 网管
- 卷管理
- 命名空间管理
- AppArmor 配置文件管理
- 建造者管理
- 系统
- 统计资料
- Shell 补全
- 撰写
- 🐳 nerdctl 撰写
- 🐳 nerdctl 撰写
- 🐳 nerdctl 撰写日志
- 🐳 nerdctl compose build
- 🐳 nerdctl compose 创建
- 🐳 nerdctl compose exec
- 🐳 nerdctl compose down
- 🐳 nerdctl 组合图片
- 🐳 nerdctl compose start
- 🐳 nerdctl compose stop
- 🐳 nerdctl 撰写端口
- 🐳 nerdctl compose ps
- 🐳 nerdctl compose pull
- 🐳 nerdctl 撰写推送
- 🐳 nerdctl compose pause
- 🐳 nerdctl compose unpause
- 🐳 nerdctl 撰写配置
- 🐳 nerdctl compose cp
- 🐳 nerdctl compose kill
- 🐳 nerdctl compose restart
- 🐳 nerdctl 撰写 rm
- 🐳 nerdctl compose 运行
- 🐳 nerdctl 撰写顶部
- 🐳 nerdctl 撰写版本
- IPFS 管理
- 全局标志
- 未实现的 Docker 命令
容器管理
🐳🟦nerdctl 运行
在新容器中运行命令。
用法:nerdctl run [OPTIONS] IMAGE [COMMAND] [ARG...]
🤓ipfs://
前缀可用于IMAGE
从 IPFS 中提取它。ipfs.md详情请参阅。:nerd_face:oci-archive://
前缀可用于IMAGE
指定 OCI 格式 tarball 的本地文件系统路径。
基本标志:
- 🐳
-a, --attach
:附加 STDIN、STDOUT 或 STDERR - 🐳🟦
-i, --interactive
:即使未连接也要保持 STDIN 开放” - 🐳🟦
-t, --tty
:分配一个伪 TTY- ⚠️WIP:目前
-t
与以下冲突-d
- ⚠️WIP:目前
- 🐳
-sig-proxy
:代理接收信号到进程(默认为 true) - 🐳🟦
-d, --detach
:在后台运行容器并打印容器 ID - 🐳
--restart=(no|always|on-failure|unless-stopped)
:容器退出时应用重新启动策略- 默认值: “否”
- 始终:如果容器停止,则始终重新启动容器。
- on-failure[:max-retries]:仅当容器以非零退出状态退出时才重新启动。(可选)使用 :max-retries 选项限制尝试重新启动容器的次数。
- 除非停止:除非容器停止,否则始终重新启动容器。
- 🐳
--rm
:容器退出时自动移除 - 🐳
--pull=(always|missing|never)
:运行前拉取镜像- 默认值:“缺失”
- 🐳
-q, --quiet
:抑制拉动输出 - 🐳
--pid=(host|container:<container>)
:要使用的 PID 命名空间 - 🐳
--uts=(host)
:要使用的 UTS 命名空间 - 🐳
--stop-signal
:停止容器的信号(默认“SIGTERM”) - 🐳
--stop-timeout
:停止容器的超时时间(以秒为单位) - 🐳
--detach-keys
:覆盖默认分离键
平台标志:
- 🐳
--platform=(amd64|arm64|...)
:设置平台
初始化进程标志:
- 🐳
--init
:在容器内运行一个转发信号并获取进程的 init。 - 🤓
--init-binary=<binary-name>
:要使用的自定义 init 二进制文件。我们建议您使用Docker 项目中使用的tini二进制文件来获得相同的行为。请确保您的 中存在该二进制文件PATH
。- 默认:
tini
- 默认:
隔离标志:
- 🐳 🟦 🤓
--isolation=(default|process|host|hyperv)
:在 Windows 上用于更改进程隔离级别。将使用在containerd 配置default
中配置的运行时选项,默认情况下该选项在 containerd 中。运行进程隔离容器。 运行主机进程容器。主机进程容器从 containerd 进程继承权限,除非指定,否则将从指定的用户启动,并且指定的用户必须存在于主机上。 需要 Containerd 1.7+。运行基于 Hyper-V 虚拟机管理程序分区的隔离容器。未在 Linux 上实施。default_runtime
process
process
host
--user
host
hyperv
网络标志:
- 🐳
--net, --network=(bridge|host|none|container:<container>|ns:<path>|<CNI>)
:将容器连接到网络。- 默认值:“bridge”
container:<name|id>
:重用另一个容器的网络堆栈,必须预先创建容器。- 🤓
ns:<path>
:在现有的网络命名空间内运行 - 🤓 与 Docker 不同,此标志可以多次指定(
--net foo --net bar
)
- 🐳
-p, --publish
:将容器的端口发布到主机 - 🐳
--dns
:设置自定义 DNS 服务器 - 🐳
--dns-search
:设置自定义 DNS 搜索域 - 🐳
--dns-opt, --dns-option
:设置 DNS 选项 - 🐳
-h, --hostname
:容器主机名 - 🐳
--add-host
:添加自定义主机到 IP 映射 (host:ip)。ip
可以是特殊字符串host-gateway
, - 它将被解析为
host-gateway-ip
nerdctl.toml 或全局标志。 - 🐳
--ip
:要使用的特定静态 IP 地址。请注意,与 docker 不同,nerdctl 允许使用默认桥接网络指定它。 - 🐳
--ip6
:要使用的特定静态 IP6 地址。应与用户网络一起使用 - 🐳
--mac-address
:要使用的特定 MAC 地址。请注意,它不会检查手动指定的 MAC 地址是否唯一。支持网络类型bridge
和macvlan
资源标志:
- 🐳
--cpus
:CPU 数量 - 🐳
--cpu-quota
:限制 CPU CFS(完全公平调度程序)配额 - 🐳
--cpu-period
:限制 CPU CFS(完全公平调度程序)周期 - 🐳
--cpu-shares
:CPU 份额(相对权重) - 🐳
--cpuset-cpus
:允许执行的 CPU (0-3, 0,1) - 🐳
--cpuset-mems
:允许执行的内存节点(MEM)(0-3、0、1)。仅在 NUMA 系统上有效 - 🐳
--memory
:内存限制 - 🐳
--memory-reservation
:内存软限制 - 🐳
--memory-swap
:交换限制等于内存加上交换:“-1”以启用无限交换 - 🐳
--memory-swappiness
:调整容器内存交换量(0 到 100)(默认 -1) - 🐳
--kernel-memory
:内核内存限制(已弃用) - 🐳
--oom-kill-disable
:禁用 OOM Killer - 🐳
--oom-score-adj
:调整容器的 OOM 偏好设置(-1000 到 1000,无根:100 到 1000) - 🐳
--pids-limit
:调整容器 pid 限制 - 🤓
--cgroup-conf
:配置 cgroup v2(key=value) - 🐳
--blkio-weight
:阻止 IO(相对权重),介于 10 到 1000 之间,或 0 表示禁用(默认为 0) - 🐳
--cgroupns=(host|private)
:要使用的 Cgroup 命名空间- 默认值:cgroup v2 主机上为“private”,cgroup v1 主机上为“host”
- 🐳
--cgroup-parent
:容器的可选父 cgroup - 🐳🟦
--device
:向容器添加主机设备
英特尔 RDT 标志:
- 🤓
--rdt-class=CLASS
:与容器关联的 RDT 类(或 CLOS)的名称
用户标志:
- 🐳 🟦
-u, --user
:用户名或 UID(格式:<name|uid>[:<group|gid>]) - 🤓
--umask
:设置容器内的 umask。默认为 0022。对应于 Podman CLI。 - 🐳
--group-add
:添加其他群组以供加入
安全标志:
- 🐳
--security-opt seccomp=<PROFILE_JSON_FILE>
:指定自定义 seccomp 配置文件 - 🐳
--security-opt apparmor=<PROFILE>
:指定自定义 AppArmor 配置文件 - 🐳
--security-opt no-new-privileges
:禁止特权升级,例如 setuid 和文件功能 - 🐳
--security-opt systempaths=unconfined
:关闭容器的系统路径(屏蔽路径、只读路径)的限制 - 🤓
--security-opt privileged-without-host-devices
:不要将主机设备传递给特权容器 - 🐳
--cap-add=<CAP>
:添加 Linux 功能 - 🐳
--cap-drop=<CAP>
:放弃 Linux 功能 - 🐳
--privileged
:授予此容器扩展权限 - 🤓
--systemd=(true|false|always)
:启用 systemd 兼容性(默认值:false)。- 默认值:”false”
- true :如果入口点可执行文件与以下路径之一匹配,则启用 systemd 兼容性:
/sbin/init
/usr/sbin/init
/usr/local/sbin/init
- 始终:始终启用 systemd 兼容性
对应于 Podman CLI。
运行时标志:
- 🐳
--runtime
:此容器使用的运行时,例如“crun”或“io.containerd.runsc.v1”。 - 🐳
--sysctl
:Sysctl 选项,例如“net.ipv4.ip_forward=1”
卷标志:
- 🐳🟦
-v, --volume <SRC>:<DST>[:<OPT>]
:绑定安装卷,例如,-v /mnt:/mnt:rro,rprivate
- 🐳 选项
rw
:读/写(可写时) - 🐳 option
ro
:非递归只读 - 🤓 option
rro
:递归只读。应与 结合使用rprivate
。例如,-v /mnt:/mnt:rro,rprivate
使子级/mnt/usb
也变为只读。需要 kernel >= 5.12,并且 crun >= 1.4 或 runc >= 1.1 (PR #3272 )。使用较旧的 runc,rro
只需按 工作即可ro
。 - 🐳 选项
shared
,slave
,private
:非递归“共享” / “从属” / “私有” 传播 - 🐳 选项
rshared
,rslave
,rprivate
:递归“共享” / “从属” / “私有” 传播 - 🤓 option
bind
:非递归绑定挂载 - 🤓 option
rbind
: 递归绑定挂载
- 🐳 选项
- 🐳
--tmpfs
:挂载 tmpfs 目录,例如--tmpfs /tmp:size=64m,exec
。 - 🐳
--mount
:将文件系统挂载附加到容器。由多个键值对组成,以逗号分隔,每个键值对由一个<key>=<value>
元组组成。例如-- mount type=bind,source=/src,target=/app,bind-propagation=shared
。- 🐳
type
:当前支持的挂载类型为bind
、volume
、tmpfs
。如果未指定,则默认类型将设置为volume
。即,--mount src=vol-1,dst=/app,readonly
equals--mount type=volume,src=vol-1,dst=/app,readonly
- 常用选项:
- 🐳
src
,source
:安装绑定和卷的源规范。绑定时必需。 - 🐳
dst
,destination
,target
:挂载目的地规范。 - 🐳
readonly
,,,ro
:文件系统权限rw
。rro
- 🐳
- 特定于的选项
bind
:- 🐳
bind-propagation
:shared
,,,,,,或(slave
默认)。private
rshared
rslave
rprivate
- 🐳
bind-nonrecursive
:true
或false
(默认)。如果设置为 true,则子挂载不会递归绑定挂载。此选项对于只读绑定挂载很有用。 - 未实现的选项:
consistency
- 🐳
- 特定于的选项
tmpfs
:- 🐳
tmpfs-size
:tmpfs 挂载的大小(以字节为单位)。默认情况下不受限制。 - 🐳 :八进制
tmpfs-mode
的 tmpfs 文件模式。默认为或全球可写。1777
- 🐳
- 特定于的选项
volume
:- 未实现的选项:
volume-nocopy
,,,volume-label
volume-driver
volume-opt
- 未实现的选项:
- 🐳
- 🐳
--volumes-from
:从指定容器挂载卷,例如“--volumes-from my-container”。
Rootfs 标志:
- 🐳
--read-only
:将容器的根文件系统挂载为只读 - 🤓
--rootfs
:第一个参数不是镜像,而是解压容器的 rootfs。对应于 Podman CLI。
环境标志:
- 🐳🟦
--entrypoint
:覆盖图像的默认 ENTRYPOINT - 🐳🟦
-w, --workdir
:容器内的工作目录 - 🐳🟦
-e, --env
:设置环境变量 - 🐳🟦
--env-file
:从文件设置环境变量
元数据标志:
- 🐳🟦
--name
:为容器指定名称 - 🐳 🟦
-l, --label
:在容器上设置元数据(自 nerdctl v2.0 以来未通过 OCI 运行时,但有一个例外nerdctl/bypass4netns
) - 🐳🟦
--label-file
:读取一行分隔的标签文件 - 🐳🟦
--annotation
:向容器添加注释(传递到 OCI 运行时) - 🐳🟦
--cidfile
:将容器 ID 写入文件 - 🤓
--pidfile
:写入任务 pid 的文件路径。CLI 语法符合 Podman 约定。
记录标志:
- 🐳
--log-driver=(json-file|journald|fluentd|syslog)
:容器的日志驱动程序(默认json-file
)。- 🐳
--log-driver=json-file
:日志格式为 JSON。nerdctl 的默认日志记录驱动程序。- 日志驱动程序
json-file
支持以下日志选项:- 🐳
--log-opt=max-size=<MAX-SIZE>
:滚动前圆木的最大尺寸。正整数加上表示计量单位(k、m 或 g)的修饰符。默认为无限制。 - 🐳
--log-opt=max-file=<MAX-FILE>
:可存在的最大日志文件数。如果滚动日志创建了多余的文件,则删除最旧的文件。仅在max-size
同时设置时才有效。正整数。默认为 1。 - 🤓
--log-opt=log-path=<LOG-PATH>
:日志写入的日志路径。如果不存在,将创建该路径。如果日志文件存在,则将旧文件重命名为<LOG-PATH>.1
。- 默认:
<data-root>/<containerd-socket-hash>/<namespace>/<container-id>/<container-id>-json.log
- 例子:
/var/lib/nerdctl/1935db59/containers/default/<container-id>/<container-id>-json.log
- 默认:
- 🐳
- 日志驱动程序
- 🐳
--log-driver=journald
:将日志消息写入journald
。journald
守护进程必须在主机上运行。- 🐳
--log-opt=tag=<TEMPLATE>
:指定模板来设置SYSLOG_IDENTIFIER
journald 日志中的值。
- 🐳
- 🐳
--log-driver=fluentd
:将日志消息写入fluentd
。fluentd
守护进程必须在主机上运行。- 日志驱动程序
fluentd
支持以下日志选项:- 🐳 :支持守护进程
--log-opt=fluentd-address=<ADDRESS>
的地址、tcp(默认)和 unix 套接字。fluentd
- 🐳
--log-opt=fluentd-async=<true|false>
:为 fluentd 启用异步模式。默认值为 false。 - 🐳
--log-opt=fluentd-buffer-limit=<LIMIT>
:fluentd 的缓冲区限制。如果缓冲区已满,记录日志的调用将失败。默认值为 8192。(https://github.com/fluent/fluent-logger-golang/tree/master#bufferlimit) - 🐳
--log-opt=fluentd-retry-wait=<1s|1ms>
:重试将日志发送到 fluentd 之前等待的时间。默认值为 1 秒。 - 🐳
--log-opt=fluentd-max-retries=<1>
:向 fluentd 发送日志的最大重试次数。默认值为 MaxInt32。 - 🐳
--log-opt=fluentd-sub-second-precision=<true|false>
:为 fluentd 启用亚秒级精度。默认值为 false。 - 🤓
--log-opt=fluentd-async-reconnect-interval=<1s|1ms>
:重试重新连接 fluentd 之前等待的时间。默认值为 0 秒。 - 🤓
--log-opt=fluentd-request-ack=<true|false>
:为 fluentd 启用请求确认。默认值为 false。
- 🐳 :支持守护进程
- 日志驱动程序
- 🐳
--log-driver=syslog
:将日志消息写入syslog
。syslog
守护进程必须在主机或远程计算机上运行。- 日志驱动程序
syslog
支持以下日志选项:- 🐳
--log-opt=syslog-address=<ADDRESS>
:外部服务器的地址syslog
。URI 说明符可以是tcp|udp|tcp+tls]://host:port
、unix://path
或unixgram://path
。如果传输是tcp
、udp
或tcp+tls
,则默认端口为514
。 - 🐳
--log-opt=syslog-facility=<FACILITY>
:syslog
要使用的工具。可以是任何有效 syslog 工具的编号或名称。请参阅 syslog 文档。 - 🐳
--log-opt=syslog-tls-ca-cert=<VALUE>
:CA 签名的信任证书的绝对路径。如果地址协议不是,则忽略tcp+tls
。 - 🐳
--log-opt=syslog-tls-cert=<VALUE>
:TLS 证书文件的绝对路径。如果地址协议不是,则忽略tcp+tls
。 - 🐳
--log-opt=syslog-tls-key=<VALUE>
:TLS 密钥文件的绝对路径。如果地址协议不是,则忽略tcp+tls
。 - 🐳
--log-opt=syslog-tls-skip-verify=<VALUE>
:如果设置为true
,则连接到守护进程时将跳过 TLS 验证。 如果地址协议不是 ,则忽略tcp+tls
。 - 🐳
--log-opt=syslog-format=<VALUE>
:syslog
要使用的消息格式。如果未指定,则使用本地 UNIX 系统日志格式,不指定主机名。指定rfc3164
RFC-3164 兼容格式、rfc5424
RFC-5424 兼容格式或rfc5424micro
具有微秒时间戳分辨率的 RFC-5424 兼容格式。 - 🐳 :附加到消息中
--log-opt=tag=<VALUE>
的字符串 。默认情况下,nerdctl 使用容器 ID 的前 12 个字符来标记日志消息。APP-NAME
syslog
- 🐳
- 日志驱动程序
- 🤓 接受 LogURI,即 containerd shim 记录器。必须为 URI 指定方案。示例: 。可以在 ( https://github.com/containerd/containerd/tree/dbef1d56d7ebc05bc4553d72c419ed5ce025b05d/runtime/v2#logging )
nerdctl run -d --log-driver binary:///usr/bin/ctr-journald-shim docker.io/library/hello-world:latest
找到 shim 记录器的实现
- 🐳
共享内存标志:
- 🐳
--ipc=(host|private|shareable|container:<container>)
:要使用和挂载的 IPC 命名空间/dev/shm
。默认值:“private”。仅在 Linux 上实现。 - 🐳
--shm-size
:尺寸/dev/shm
GPU 标志:
- 🐳
--gpus
:要添加到容器的 GPU 设备(“all”表示传递所有 GPU)。./gpu.md详情请参阅。
Ulimit 标志:
- 🐳
--ulimit
:设置 ulimit
验证标志:
- 🤓
--verify
:验证图像(无|共同签名|符号)。详情请参阅./cosign.md和。./notation.md - 🤓
--cosign-key
:公钥文件、KMS、URI 或 Kubernetes Secret 的路径--verify=cosign
- 🤓
--cosign-certificate-identity
:--verify=cosign 的有效 Fulcio 证书中预期的身份。有效值包括电子邮件地址、DNS 名称、IP 地址和 URI。必须为无密钥流设置 --cosign-certificate-identity 或 --cosign-certificate-identity-regexp - 🤓 : --verify=cosign 的 --cosign-certificate-identity 的正则表达式替代方案。接受https://golang.org/s/re2syntax
--cosign-certificate-identity-regexp
中描述的 Go 正则表达式语法。必须为无密钥流设置 --cosign-certificate-identity 或 --cosign-certificate-identity-regexp - 🤓
--cosign-certificate-oidc-issuer
: --verify=cosign 的有效 Fulcio 证书中预期的 OIDC 发行者,例如https://token.actions.githubusercontent.com或https://oauth2.sigstore.dev/auth。必须为无密钥流设置 --cosign-certificate-oidc-issuer 或 --cosign-certificate-oidc-issuer-regexp - 🤓
--cosign-certificate-oidc-issuer-regexp
: --verify=cosign, 的 --certificate-oidc-issuer 的正则表达式替代方案。接受https://golang.org/s/re2syntax中描述的 Go 正则表达式语法。必须为无密钥流设置 --cosign-certificate-oidc-issuer 或 --cosign-certificate-oidc-issuer-regexp
IPFS标志:
- 🤓
--ipfs-address
:IPFS API 的多地址($IPFS_PATH
如果定义则默认使用环境变量或本地目录~/.ipfs
)
未实现 的标志docker run
: --blkio-weight-device
,,,,,,,,,,,,,,,--cpu-rt-*
--device-*
--disable-content-trust
--domainname
--expose
--health-*
--isolation
--no-healthcheck
--link*
--publish-all
--storage-opt
--userns
--volume-driver
🐳🟦nerdctl exec
在正在运行的容器中运行命令。
用法:nerdctl exec [OPTIONS] CONTAINER COMMAND [ARG...]
标志:
- 🐳
-i, --interactive
:即使未连接,也保持 STDIN 开放 - 🐳
-t, --tty
:分配一个伪 TTY- ⚠️WIP:目前
-t
与以下冲突-d
- ⚠️WIP:目前
- 🐳
-d, --detach
:分离模式:在后台运行命令 - 🐳
-w, --workdir
:容器内的工作目录 - 🐳
-e, --env
:设置环境变量 - 🐳
--env-file
:从文件设置环境变量 - 🐳
--privileged
:授予命令扩展权限 - 🐳
-u, --user
:用户名或 UID(格式:<name|uid>[:<group|gid>])
未实现的docker exec
标志:--detach-keys
🐳🟦nerdctl创建
创建一个新容器。
用法:nerdctl create [OPTIONS] IMAGE [COMMAND] [ARG...]
🤓ipfs://
前缀可用于IMAGE
从 IPFS 中提取它。ipfs.md详情请参阅。:nerd_face:oci-archive://
前缀可用于IMAGE
指定 OCI 格式 tarball 的本地文件系统路径。
该nerdctl create
命令类似于,nerdctl run -d
但容器从未启动。然后,您可以随时使用该nerdctl start <container_id>
命令启动容器。
🐳 nerdctl cp
在正在运行的容器和本地文件系统之间复制文件/文件夹
用法:
nerdctl cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
nerdctl cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
⚠️ nerdctl cp
仅设计用于受信任的协作容器。nerdctl cp
不支持与不受信任或恶意的容器一起使用,并且可能无法提供针对意外行为的保护。
标志:
- 🐳
-L, --follow-link
始终遵循 SRC_PATH 中的符号链接。
未实现的docker cp
标志:--archive
🐳🟦nerdctl ps
列出容器。
用法:nerdctl ps [OPTIONS]
标志:
- 🐳
-a, --all
:显示所有容器(默认显示正在运行) - 🐳
--no-trunc
:不要截断输出 - 🐳
-q, --quiet
:仅显示容器 ID - 🐳
-s, --size
:显示文件总大小 - 🐳
--format
:使用给定的 Go 模板格式化输出- 🐳
--format=table
(默认):表格 - 🐳
--format='{{json .}}'
:JSON - 🤓
--format=wide
:宽桌 - 🤓
--format=json
:别名--format='{{json .}}'
- 🐳
- 🐳
-n, --last
:显示最后创建的 n 个容器(包括所有状态) - 🐳
-l, --latest
:显示最新创建的容器(包括所有状态) - 🐳
-f, --filter
:根据给定条件过滤容器。指定条件“status”时,它会过滤所有容器- 🐳
--filter id=<value>
:容器的 ID。支持完整 ID 和截断 ID - 🐳
--filter name=<value>
:容器的名称 - 🐳
--filter label=<key>=<value>
:任意字符串,可以是键或键值对 - 🐳
--filter exited=<value>
:容器的退出代码。仅适用于--all
- 🐳
--filter status=<value>
: 之一created, running, paused, stopped, exited, pausing, unknown
。请注意restarting, removing, dead
不受支持,将被忽略。指定此条件时,它会过滤所有容器。 - 🐳
--filter before/since=<ID/name>
:过滤在给定 ID 或名称之前或之后创建的容器 - 🐳
--filter volume=<value>
:按给定的挂载卷或绑定挂载进行过滤 - 🐳
--filter network=<value>
:按给定网络进行过滤
- 🐳
下列参数--filter
尚不受支持:
--filter ancestor=<value>
--filter publish/expose=<port/startport-endport>[/<proto>]
--filter health=<value>
--filter isolation=<value>
--filter is-task=<value>
🐳 🟦 nerdctl 检查
显示一个或多个容器的详细信息。
用法:nerdctl inspect [OPTIONS] NAME|ID [NAME|ID...]
标志:
- 🤓
--mode=(dockercompat|native)
:检查模式。“本机”产生更多信息。 - 🐳
--format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
- 🐳
--type
:返回指定类型的 JSON - 🐳
--size
:如果类型为容器,则显示文件总大小
未实现的docker inspect
标志: --size
🐳 nerdctl 日志
获取容器的日志。
⚠️目前,仅nerdctl run -d
支持使用 创建的容器。
用法:nerdctl logs [OPTIONS] CONTAINER
标志:
- 🐳
-f, --follow
:跟踪日志输出 - 🐳
--since
:显示自时间戳记以来的日志(例如 2013-01-02T13:23:37Z)或相对日志(例如 42m 代表 42 分钟) - 🐳
--until
:显示时间戳之前的日志(例如 2013-01-02T13:23:37Z)或相对时间戳(例如 42m 表示 42 分钟) - 🐳
-t, --timestamps
:显示时间戳 - 🐳
-n, --tail
:从日志末尾显示的行数(默认“全部”)
未实现的docker logs
标志:--details
🐳 nerdctl 端口
列出容器的端口映射或特定映射。
用法:nerdctl port CONTAINER [PRIVATE_PORT[/PROTO]]
🐳 nerdctl rm
移除一个或多个容器。
用法:nerdctl rm [OPTIONS] CONTAINER [CONTAINER...]
标志:
- 🐳
-f, --force
:强制删除正在运行|暂停|未知的容器(使用 SIGKILL) - 🐳
-v, --volumes
:删除与容器关联的匿名卷
未实现的docker rm
标志:--link
🐳 nerdctl stop
停止一个或多个正在运行的容器。
用法:nerdctl stop [OPTIONS] CONTAINER [CONTAINER...]
标志:
- 🐳
-t, --time=SECONDS
:终止前等待停止的秒数(默认“10”)- 提示:如果容器中的 init 进程在收到 SIGTERM 后退出,或者在指定的时间之前退出,容器将立即退出
🐳 nerdctl 启动
启动一个或多个正在运行的容器。
用法:nerdctl start [OPTIONS] CONTAINER [CONTAINER...]
标志:
- 🐳
-a, --attach
:附加 STDOUT/STDERR 并转发信号 - 🐳
--detach-keys
:覆盖默认分离键
未实现的标志docker start
:--checkpoint
,,--checkpoint-dir
--interactive
🐳 nerdctl 重启
重新启动一个或多个正在运行的容器。
用法:nerdctl restart [OPTIONS] CONTAINER [CONTAINER...]
标志:
- 🐳
-t, --time=SECONDS
:终止前等待停止的秒数(默认“10”)- 提示:如果容器中的 init 进程在收到 SIGTERM 后退出,或者在指定的时间之前退出,容器将立即退出
🐳 nerdctl 更新
更新一个或多个容器的配置。
用法:nerdctl update [OPTIONS] CONTAINER [CONTAINER...]
- 🐳
--cpus
:CPU 数量 - 🐳
--cpu-quota
:限制 CPU CFS(完全公平调度程序)配额 - 🐳
--cpu-period
:限制 CPU CFS(完全公平调度程序)周期 - 🐳
--cpu-shares
:CPU 份额(相对权重) - 🐳
--cpuset-cpus
:允许执行的 CPU (0-3, 0,1) - 🐳
--cpuset-mems
:允许执行的内存节点(MEM)(0-3、0、1)。仅在 NUMA 系统上有效 - 🐳
--memory
:内存限制 - 🐳
--memory-reservation
:内存软限制 - 🐳
--memory-swap
:交换限制等于内存加上交换:“-1”以启用无限交换 - 🐳
--kernel-memory
:内核内存限制(已弃用) - 🐳
--pids-limit
:调整容器 pid 限制 - 🐳
--blkio-weight
:阻止 IO(相对权重),介于 10 到 1000 之间,或 0 表示禁用(默认为 0) - 🐳
--restart=(no|always|on-failure|unless-stopped)
:容器退出时应用重新启动策略
🐳 nerdctl 等待
阻塞直到一个或多个容器停止,然后打印它们的退出代码。
用法:nerdctl wait CONTAINER [CONTAINER...]
🐳 nerdctl kill
终止一个或多个正在运行的容器。
用法:nerdctl kill [OPTIONS] CONTAINER [CONTAINER...]
标志:
- 🐳
-s, --signal
:发送给容器的信号(默认:“KILL”)
🐳 nerdctl 暂停
暂停一个或多个容器内的所有进程。
用法:nerdctl pause CONTAINER [CONTAINER...]
🐳 nerdctl 取消暂停
取消暂停一个或多个容器内的所有进程。
用法:nerdctl unpause CONTAINER [CONTAINER...]
🐳 nerdctl 重命名
重命名容器。
用法:nerdctl rename CONTAINER NEW_NAME
🐳 nerdctl 附加
将 stdin、stdout 和 stderr 附加到正在运行的容器。例如:
nerdctl run -it --name test busybox
使用 pty 启动容器ctrl-p ctrl-q
从容器中分离nerdctl attach test
附着在容器上
注意事项:
- 目前只允许一个附加会话。当第二个会话尝试附加时,目前 nerdctl 不会返回任何错误。但是,由于在后台,stdin、stdout 和 stderr 分别只有一个 FIFO,如果有多个会话,所有会话都将从相同的 3 个 FIFO 读取和写入,这将导致混合输入和部分输出。
- 在实现双重日志记录(问题#1946)之前,无法附加由
nerdctl run -d
或nerdctl start
(没有)启动的容器。--attach
用法:nerdctl attach CONTAINER
标志:
- 🐳
--detach-keys
:覆盖默认分离键
未实现的docker attach
标志:--no-stdin
,--sig-proxy
🐳 nerdctl 容器修剪
删除所有停止的容器。
用法:nerdctl container prune [OPTIONS]
标志:
- 🐳
-f, --force
:不提示确认。
未实现的docker container prune
标志:--filter
🐳 nerdctl diff
检查容器文件系统上文件或目录的更改
用法:nerdctl diff CONTAINER
建造
🐳 nerdctl 构建
从 Dockerfile 构建映像。
ℹ️ 需要 buildkitd 运行。另请参阅有关使用 BuildKit进行设置的文档nerdctl build。
用法:nerdctl build [OPTIONS] PATH
标志:
- 🤓
--buildkit-host=<BUILDKIT_HOST>
:BuildKit 地址 - 🐳
-t, --tag
:名称和可选的标签,格式为“name:tag” - 🐳
-f, --file
:Dockerfile 的名称 - 🐳
--target
:设置要构建的目标构建阶段 - 🐳
--build-arg
:设置构建时变量 - 🐳
--no-cache
:构建镜像时不要使用缓存 - 🐳
--output=OUTPUT
:输出目的地(格式:type=local,dest=path)- 🐳
type=local,dest=path/to/output-dir
:本地目录 - 🐳
type=oci[,dest=path/to/output.tar]
:Docker/OCI 双格式 tar 包(兼容docker buildx build
) - 🐳
type=docker[,dest=path/to/output.tar]
:Docker 格式 tar ball(兼容docker buildx build
) - 🐳
type=tar[,dest=path/to/output.tar]
:生焦油球 - 🐳
type=image,name=example.com/image,push=true
:推送到注册表(参见buildctl build文档)
- 🐳
- 🐳
--progress=(auto|plain|tty)
:设置进度输出类型(auto、plain、tty)。使用 plain 显示容器输出 - 🐳
--provenance
:“--attest=type=provenance” 的简写,请参阅buildx_build.md文档 - 🐳
--pull=(true|false)
:设置为 true 时,始终尝试从远程拉取最新的镜像版本。默认使用 buildkit 的默认值。 - 🐳
--secret
:向构建公开的秘密文件:id=mysecret,src=/local/secret - 🐳
--allow
:允许额外的特权,例如 network.host、security.insecure(需要配置 buildkitd 才能启用该功能,请参阅buildkitd.toml文档) - 🐳
--attest
:证明参数(格式:“type=sbom,generator=image”),参见buildx_build.md文档 - 🐳
--ssh
:向构建公开的 SSH 代理套接字或密钥(格式default|<id>[=<socket>|<key>[,<key>]]
:) - 🐳
-q, --quiet
:抑制构建输出并在成功时打印图像 ID - 🐳
--sbom
:“--attest=type=sbom”的简写,请参阅buildx_build.md文档 - 🐳
--cache-from=CACHE
:外部缓存源(例如 user/app:cache、type=local、src=path/to/dir)(兼容docker buildx build
) - 🐳
--cache-to=CACHE
:缓存导出目的地(例如 user/app:cache、type=local、dest=path/to/dir)(兼容docker buildx build
) - 🐳
--platform=(amd64|arm64|...)
:设置构建的目标平台(兼容docker buildx build
) - 🐳
--iidfile=FILE
:将图像 ID 写入文件 - 🤓
--ipfs
:从 IPFS 中提取基础镜像来构建镜像。ipfs.md详情请参阅。 - 🐳
--label
:设置图像的元数据 - 🐳
--network=(default|host|none)
:设置构建过程中 RUN 指令的网络模式。(兼容buildctl build
) - 🐳
--build-context
:设置构建的附加上下文(例如 dir2=/path/to/dir2、myorg/myapp=docker-image://path/to/myorg/myapp)
未实现的docker build
标志:--add-host
,--squash
🐳 nerdctl 提交
根据容器的更改创建新镜像
用法:nerdctl commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
标志:
- 🐳
-a, --author
:作者(例如,“nerdctl 贡献者nerdctl-dev@example.com ”) - 🐳
-m, --message
:提交消息 - 🐳
-c, --change
:将 Dockerfile 指令应用于创建的图像(支持的指令:[CMD,ENTRYPOINT]) - 🐳
-p, --pause
:提交期间暂停容器(默认值:true)
图像管理
🐳 🟦 nerdctl 图片
列出图像
⚠️该镜像ID通常与Docker镜像ID不同。
用法:nerdctl images [OPTIONS] [REPOSITORY[:TAG]]
标志:
- 🐳
-a, --all
:显示所有图片(未实现) - 🐳
-q, --quiet
:仅显示数字 ID - 🐳
--no-trunc
:不要截断输出 - 🐳
--format
:使用给定的 Go 模板格式化输出- 🐳
--format=table
(默认):表格 - 🐳
--format='{{json .}}'
:JSON - 🤓
--format=wide
:宽桌 - 🤓
--format=json
:别名--format='{{json .}}'
- 🐳
- 🐳
--digests
:显示摘要(与 Docker 兼容,与 ID 不同) - 🐳
-f, --filter
:过滤图像。- 🐳
--filter=before=<image:tag>
:在给定图像之前创建的图像(独家) - 🐳
--filter=since=<image:tag>
:根据给定图像创建的图像(独家) - 🐳
--filter=label<key>=<value>
:根据标签的存在或标签和值来匹配图像 - 🐳
--filter=dangling=true
:通过悬垂方式过滤图像 - 🤓
--filter=reference=<image:tag>
:通过引用过滤图像(匹配docker兼容通配符模式和正则表达式匹配)
- 🐳
- 🤓
--names
:显示图片名称
🐳 🟦 nerdctl pull
从注册表中提取图像。
用法:nerdctl pull [OPTIONS] NAME[:TAG|@DIGEST]
🤓ipfs://
前缀可用于NAME
从 IPFS 中提取。ipfs.md详情请参阅。
标志:
- 🐳
--platform=(amd64|arm64|...)
:针对特定平台提取内容- 🤓 与 Docker 不同,此标志可以多次指定(
--platform=amd64 --platform=arm64
)
- 🤓 与 Docker 不同,此标志可以多次指定(
- 🤓
--all-platforms
:为所有平台提取内容 - 🤓
--unpack
:解压当前单一平台的图像(自动/真/假) - 🐳
-q, --quiet
:抑制详细输出 - 🤓
--verify
:验证图像(无|共同签名|符号)。详情请参阅./cosign.md和。./notation.md - 🤓
--cosign-key
:公钥文件、KMS、URI 或 Kubernetes Secret 的路径--verify=cosign
- 🤓
--cosign-certificate-identity
:--verify=cosign 的有效 Fulcio 证书中预期的身份。有效值包括电子邮件地址、DNS 名称、IP 地址和 URI。必须为无密钥流设置 --cosign-certificate-identity 或 --cosign-certificate-identity-regexp - 🤓 : --verify=cosign 的 --cosign-certificate-identity 的正则表达式替代方案。接受https://golang.org/s/re2syntax
--cosign-certificate-identity-regexp
中描述的 Go 正则表达式语法。必须为无密钥流设置 --cosign-certificate-identity 或 --cosign-certificate-identity-regexp - 🤓
--cosign-certificate-oidc-issuer
: --verify=cosign 的有效 Fulcio 证书中预期的 OIDC 发行者,例如https://token.actions.githubusercontent.com或https://oauth2.sigstore.dev/auth。必须为无密钥流设置 --cosign-certificate-oidc-issuer 或 --cosign-certificate-oidc-issuer-regexp - 🤓
--cosign-certificate-oidc-issuer-regexp
: --verify=cosign, 的 --certificate-oidc-issuer 的正则表达式替代方案。接受https://golang.org/s/re2syntax中描述的 Go 正则表达式语法。必须为无密钥流设置 --cosign-certificate-oidc-issuer 或 --cosign-certificate-oidc-issuer-regexp - 🤓
--ipfs-address
:IPFS API 的多地址($IPFS_PATH
如果定义则默认使用环境变量或本地目录~/.ipfs
) - 🤓
--soci-index-digest
:为 SOCI 指定特定的索引摘要。如果留空,SOCI 将自动使用选择策略确定的索引。
未实现的docker pull
标志:--all-tags
,--disable-content-trust
(默认为 true)
🐳 nerdctl push
将图像推送到注册表。
用法:nerdctl push [OPTIONS] NAME[:TAG]
🤓ipfs://
前缀可用于NAME
将其推送到 IPFS。ipfs.md详情请参阅。
标志:
- 🤓
--platform=(amd64|arm64|...)
:针对特定平台推送内容 - 🤓
--all-platforms
:向所有平台推送内容 - 🤓
--sign
:对图像进行签名(无|共同签名|符号)。详情请参阅./cosign.md和。./notation.md - 🤓
--cosign-key
:私钥文件、KMS、URI 或 Kubernetes Secret 的路径--sign=cosign
- 🤓
--notation-key-name
:为先前添加到符号密钥列表中的密钥签名密钥名称--sign=notation
- 🤓
--allow-nondistributable-artifacts
:允许推送带有不可分发 blob 的图像 - 🤓
--ipfs-address
:IPFS API 的多地址($IPFS_PATH
如果定义则默认使用环境变量或本地目录~/.ipfs
) - 🐳
-q, --quiet
:抑制详细输出 - 🤓
--soci-span-size
:soci 索引用于分段层数据的跨度大小(以字节为单位)。默认值为 4 MiB。 - 🤓
--soci-min-layer-size
:构建 zTOC 的最小层大小(以字节为单位)。较小的层不会有 zTOC,也不会延迟拉取。默认值为 10 MiB。
未实现的docker push
标志:--all-tags
,--disable-content-trust
(默认为 true)
🐳 nerdctl 加载
从 tar 存档或 STDIN 加载图像。
🤓 支持 Docker Image Spec v1.2 和 OCI Image Spec v1.0。
用法:nerdctl load [OPTIONS]
标志:
- 🐳
-i, --input
:从 tar 存档文件读取,而不是从 STDIN 读取 - 🐳
-q, --quiet
:抑制负载输出 - 🤓
--platform=(amd64|arm64|...)
:导入特定平台的内容 - 🤓
--all-platforms
:导入所有平台的内容
🐳 nerdctl 保存
将一个或多个图像保存到 tar 存档(默认流式传输到 STDOUT)
🤓 该档案实现了 Docker Image Spec v1.2 和 OCI Image Spec v1.0。
用法:nerdctl save [OPTIONS] IMAGE [IMAGE...]
标志:
- 🐳
-o, --output
:写入文件,而不是 STDOUT - 🤓
--platform=(amd64|arm64|...)
:导出特定平台的内容 - 🤓
--all-platforms
:导出适用于所有平台的内容
🐳 nerdctl 标签
创建一个引用 SOURCE_IMAGE 的标签 TARGET_IMAGE。
用法:nerdctl tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
🐳 nerdctl rmi
移除一个或多个图像
用法:nerdctl rmi [OPTIONS] IMAGE [IMAGE...]
标志:
- 🤓
--async
:异步模式 - 🐳
-f, --force
:强制删除图像
未实现的docker rmi
标志:--no-prune
🐳 nerdctl 图像检查
显示一个或多个图像的详细信息。
用法:nerdctl image inspect [OPTIONS] NAME|ID [NAME|ID...]
标志:
- 🤓
--mode=(dockercompat|native)
:检查模式。“本机”产生更多信息。 - 🐳
--format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
- 🤓
--platform=(amd64|arm64|...)
:检查特定平台
🐳 nerdctl 图片历史
显示图像的历史记录。
用法:nerdctl history [OPTIONS] IMAGE
标志:
- 🐳
--no-trunc
:不要截断输出 - 🐳
-q, --quiet
:仅显示快照 ID - 🐳
--format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
- 🐳
-H, --human
:以人类可读的格式打印大小和日期(默认为 true)
🐳 nerdctl 图像修剪
删除未使用的图像。
用法:nerdctl image prune [OPTIONS]
标志:
- 🐳
-a, --all
:删除所有未使用的图像,而不仅仅是悬空的图像 - 🐳
-f, --filter
:过滤图像。- 🐳
--filter=until=<timestamp>
:在给定日期格式的时间戳或 Go 持续时间字符串之前创建的图像。目前不支持 Unix 时间戳。 - 🐳
--filter=label<key>=<value>
:根据标签的存在或标签和值来匹配图像
- 🐳
- 🐳
-f, --force
:不提示确认
🤓 nerdctl 图像转换
转换图像格式。
例如,nerdctl image convert --estargz --oci example.com/foo:orig example.com/foo:esgz
用法:nerdctl image convert [OPTIONS] SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
标志:
--estargz
:将旧版 tar(.gz) 层转换为 eStargz,以进行延迟拉取。应与“--oci”结合使用--estargz-record-in=<FILE>
:读取ctr-remote optimize --record-out=<FILE>
记录文件。⚠️此标志尚在实验之中,可能会发生变化。--estargz-compression-level=<LEVEL>
:eStargz 压缩级别(默认值:9)--estargz-chunk-size=<SIZE>
:eStargz 块大小--estargz-min-chunk-size=<SIZE>
:必须在一个 gzip 流中写入最少数量的数据字节(需要 stargz-snapshotter >= v0.13.0)。这对于创建较小的 eStargz 图像很有用(有关./stargz.md详细信息,请参阅)。--estargz-external-toc
:将 TOC JSON 分离成另一个图像(称为“TOC 图像”)。TOC 图像的名称是原始名称 +“-esgztoc”后缀。eStargz 和 TOC 图像都应推送到同一个注册表。(需要 stargz-snapshotter >= v0.13.0)用于创建较小的 eStargz 图像(有关./stargz.md详细信息,请参阅)。⚠️此标志尚在实验之中,可能会发生变化。--estargz-keep-diff-id
:转换为 esgz 而不改变 diffID(不能与‘--estargz-record-in’一起使用。必须与‘--estargz-external-toc’一起指定)--zstd
:使用 zstd 压缩代替 gzip。应与 '--oci' 结合使用--zstd-compression-level=<LEVEL>
:zstd 压缩级别(默认值:3)--zstdchunked
:使用 zstd 压缩代替 gzip(又名 zstd:chunked)。应与“--oci”结合使用--zstdchunked-record-in=<FILE>
:读取ctr-remote optimize --record-out=<FILE>
记录文件。⚠️此标志尚在实验之中,可能会发生变化。--zstdchunked-compression-level=<LEVEL>
:zstd:chunked 压缩级别(默认值:3)--zstdchunked-chunk-size=<SIZE>
:zstd:分块大小--uncompress
:将 tar.gz 层转换为未压缩的 tar 层--oci
:将 Docker 媒体类型转换为 OCI 媒体类型--platform=<PLATFORM>
:为特定平台转换内容--all-platforms
:转换所有平台的内容(默认值:false)
🤓 nerdctl 图像加密
加密图像层。请参阅./ocicrypt.md。
用法:nerdctl image encrypt [OPTIONS] SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
例子:
openssl genrsa -out mykey.pem
openssl rsa -in mykey.pem -pubout -out mypubkey.pem
nerdctl image encrypt --recipient=jwe:mypubkey.pem --platform=linux/amd64,linux/arm64 foo example.com/foo:encrypted
nerdctl push example.com/foo:encrypted
⚠️注意:此命令仅加密镜像层,不会加密容器配置(如Env和 )Cmd。要查看非加密信息,请运行nerdctl image inspect --mode=native --platform=PLATFORM example.com/foo:encrypted
。
标志:
--recipient=<RECIPIENT>
:图像的接收者是可以解密的人(例如jwe:mypubkey.pem
)--dec-recipient=<RECIPIENT>
:图像的接收者;仅用于 PKCS7,并且必须是 x509 证书--key=<KEY>[:<PWDDESC>]
:密钥的文件名和可选密码,以冒号分隔,PWDDESC=|pass:|fd=|filename--gpg-homedir=<DIR>
:要使用的 GPG 主目录;默认情况下,gpg 使用 ~/.gnupg--gpg-version=<VERSION>
:GPG 版本(“v1”或“v2”),默认会做出有根据的猜测--platform=<PLATFORM>
:为特定平台转换内容--all-platforms
:转换所有平台的内容(默认值:false)
🤓 nerdctl 图像解密
解密图像层。请参阅./ocicrypt.md。
用法:nerdctl image decrypt [OPTIONS] SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
例子:
nerdctl pull --unpack=false example.com/foo:encrypted
nerdctl image decrypt --key=mykey.pem example.com/foo:encrypted foo:decrypted
标志:
--dec-recipient=<RECIPIENT>
:图像的接收者;仅用于 PKCS7,并且必须是 x509 证书--key=<KEY>[:<PWDDESC>]
:密钥的文件名和可选密码,以冒号分隔,PWDDESC=|pass:|fd=|filename--gpg-homedir=<DIR>
:要使用的 GPG 主目录;默认情况下,gpg 使用 ~/.gnupg--gpg-version=<VERSION>
:GPG 版本(“v1”或“v2”),默认会做出有根据的猜测--platform=<PLATFORM>
:为特定平台转换内容--all-platforms
:转换所有平台的内容(默认值:false)
註冊
🐳 nerdctl 登录
登录到容器注册表。
用法:nerdctl login [OPTIONS] [SERVER]
标志:
- 🐳
-u, --username
:用户名 - 🐳
-p, --password
:密码 - 🐳
--password-stdin
:从标准输入中获取密码
🐳 nerdctl 注销
从容器注册表注销
用法:nerdctl logout [SERVER]
网管
🐳 nerdctl 网络创建
创建网络
ℹ️ 为了隔离 CNI 桥,需要安装 CNI 插件 v1.1.0 或更高版本。
用法:nerdctl network create [OPTIONS] NETWORK
标志:
- 🐳
-d, --driver=(bridge|nat|macvlan|ipvlan)
:管理网络的驱动程序- 🐳
--driver=bridge
:unix 的默认驱动程序 - 🐳
--driver=macvlan
:适用于 unix 的 Macvlan 网络驱动程序 - 🐳
--driver=ipvlan
:适用于 unix 的 IPvlan 网络驱动程序 - 🐳🟦
--driver=nat
:Windows 的默认驱动程序
- 🐳
- 🐳
-o, --opt
:设置驱动程序特定选项- 🐳
--opt=com.docker.network.driver.mtu=<MTU>
:设置容器网络 MTU - 🤓
--opt=mtu=<MTU>
:别名--opt=com.docker.network.driver.mtu=<MTU>
- 🐳
--opt=macvlan_mode=(bridge)>
:设置 macvlan 网络模式(默认:bridge) - 🐳
--opt=ipvlan_mode=(l2|l3)
:设置 IPvlan 网络模式(默认:l2) - 🤓
--opt=mode=(bridge|l2|l3)
:--opt=macvlan_mode=(bridge)
和的别名--opt=ipvlan_mode=(l2|l3)
- 🐳
--opt=parent=<INTERFACE>
:在主机上设置有效的父接口
- 🐳
- 🐳
--ipam-driver=(default|host-local|dhcp)
:IP 地址管理驱动程序- 🐳🟦
--ipam-driver=default
:默认 IPAM 驱动程序 - 🤓
--ipam-driver=host-local
:适用于 unix 的主机本地 IPAM 驱动程序 - 🤓
--ipam-driver=dhcp
:适用于 unix 的 DHCP IPAM 驱动程序,需要 root
- 🐳🟦
- 🐳
--ipam-opt
:设置 IPAM 驱动程序特定选项 - 🐳
--subnet
:CIDR 格式的子网,代表网络段,例如“10.5.0.0/16” - 🐳
--gateway
:主子网的网关 - 🐳
--ip-range
:从子范围分配容器 IP - 🐳
--label
:在网络上设置元数据 - 🐳
--ipv6
:启用 IPv6。应与有效子网一起使用。
未实现的标志docker network create
:--attachable
,,,,,,,--aux-address
--config-from
--config-only
--ingress
--internal
--scope
🐳 nerdctl network ls
列出网络
用法:nerdctl network ls [OPTIONS]
标志:
- 🐳
-q, --quiet
:仅显示网络 ID - 🐳
--format
:使用给定的 Go 模板格式化输出- 🐳
--format=table
(默认):表格 - 🐳
--format='{{json .}}'
:JSON - 🤓
--format=wide
:别名--format=table
- 🤓
--format=json
:别名--format='{{json .}}'
- 🐳
未实现的docker network ls
标志:--no-trunc
🐳 nerdctl 网络检查
显示一个或多个网络的详细信息
用法:nerdctl network inspect [OPTIONS] NETWORK [NETWORK...]
标志:
- 🐳
--format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
- 🤓
--mode=(dockercompat|native)
:检查模式。“本机”产生更多信息。
未实现的docker network inspect
标志:--verbose
🐳 nerdctl 网络 rm
根据名称或标识符删除一个或多个网络
:warning 如果有容器连接到网络,则网络删除将会失败。
用法:nerdctl network rm NETWORK [NETWORK...]
🐳 nerdctl 网络修剪
删除所有未使用的网络
用法:nerdctl network prune [OPTIONS]
标志:
- 🐳
-f, --force
:不提示确认
未实现的docker network prune
标志:--filter
卷管理
🐳 nerdctl 卷创建
创建卷
用法:nerdctl volume create [OPTIONS] [VOLUME]
标志:
- 🐳
--label
:设置卷的元数据
未实现的docker volume create
标志:--driver
,--opt
🐳 nerdctl volume ls
列出卷
用法:nerdctl volume ls [OPTIONS]
标志:
- 🐳
-q, --quiet
:仅显示卷名称 - 🐳
--format
:使用给定的 Go 模板格式化输出- 🐳
--format=table
(默认):表格 - 🐳
--format='{{json .}}'
:JSON - 🤓
--format=wide
:别名--format=table
- 🤓
--format=json
:别名--format='{{json .}}'
- 🐳
- 🤓
--size
:显示卷的磁盘使用情况。 - 🐳
-f, --filter
:根据给定的条件过滤卷。- 🐳
--filter label=<key>=<value>
:按key
和上的标签匹配卷value
。如果value
留空,则匹配所有带有的卷,key
无论其值如何 - 🐳
--filter name=<value>
:匹配名称包含value
字符串的所有卷 - 🤓
--filter "size=<value>"
:匹配所有大小符合的卷value
。size
操作数可以是>=, <=, >, <, =
且value
必须是整数。应使用引号,否则某些 shell 可能会将操作数视为重定向
- 🐳
下列参数--filter
尚不受支持:
--filter=dangling=true
:通过悬垂来过滤卷--filter=driver=local
:按驱动程序过滤卷
🐳 nerdctl 音量检查
显示一个或多个卷的详细信息
用法:nerdctl volume inspect [OPTIONS] VOLUME [VOLUME...]
标志:
- 🐳
--format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
- 🤓
--size
:显示卷的磁盘使用情况
🐳 nerdctl 音量 rm
删除一个或多个卷
用法:nerdctl volume rm [OPTIONS] VOLUME [VOLUME...]
- 🐳
-f, --force
:强制删除一个或多个卷
🐳 nerdctl 卷修剪
删除所有未使用的本地卷
用法:nerdctl volume prune [OPTIONS]
标志:
- 🐳
-f, --force
:不提示确认
未实现的docker volume prune
标志:--filter
命名空间管理
🤓 🟦 nerdctl 命名空间创建
创建一个新的命名空间。
用法:nerdctl namespace create NAMESPACE
标志:
--label
:设置命名空间的标签
🤓 🟦 nerdctl 命名空间检查
检查命名空间。
用法:nerdctl namespace inspect NAMESPACE
🤓 🟦 nerdctl namespace ls
列出容器命名空间,例如“default”、“moby”或“k8s.io”。
用法:nerdctl namespace ls [OPTIONS]
标志:
-q, --quiet
:仅显示命名空间名称
🤓 🟦 nerdctl 命名空间删除
删除一个或多个命名空间。
用法:nerdctl namespace remove [OPTIONS] NAMESPACE [NAMESPACE...]
标志:
-c, --cgroup
:删除命名空间的 cgroup
🤓 🟦 nerdctl 命名空间更新
更新命名空间的标签。
用法:nerdctl namespace update NAMESPACE
标志:
--label
:设置命名空间的标签
AppArmor 配置文件管理
🤓 nerdctl apparmor 检查
显示默认的 AppArmor 配置文件“nerdctl-default”。此命令无法显示其他配置文件。
用法:nerdctl apparmor inspect
🤓 nerdctl apparmor 加载
加载默认的 AppArmor 配置文件“nerdctl-default”。需要 root 权限。
用法:nerdctl apparmor load
🤓 nerdctl apparmor ls
列出已加载的 AppArmor 配置文件
用法:nerdctl apparmor ls [OPTIONS]
标志:
-q, --quiet
:仅显示卷名--format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
🤓 nerdctl apparmor 卸载
卸载 AppArmor 配置文件。目标配置文件名称默认为“nerdctl-default”。需要 root 权限。
用法:nerdctl apparmor unload [PROFILE]
建造者管理
🐳 nerdctl builder prune
清理 BuildKit 构建缓存。
⚠️输出格式与 Docker 不兼容。
用法:nerdctl builder prune
标志:
- 🤓
--buildkit-host=<BUILDKIT_HOST>
:BuildKit 地址 - 🐳
--all
:删除所有未使用的构建缓存,而不仅仅是悬空的缓存 - 🐳
--force
:不提示确认
未实现的docker builder prune
标志:--filter
,--keep-storage
🤓 nerdctl builder 调试
使用buildg交互式调试 Dockerfile 。./builder-debug.md详情请参阅。这是一个实验性功能。
⚠️此命令目前不使用主机的buildkitd
守护程序,而是使用 buildg 提供的修补版本 BuildKit。这个问题应该会在将来得到修复。
用法:nerdctl builder debug PATH
标志:
- 🤓
-f
,--file
:Dockerfile 的名称 - 🤓
--image
:用于调试阶段的图像 - 🤓
--target
:设置要构建的目标构建阶段 - 🤓
--build-arg
:设置构建时变量
系统
🐳 nerdctl 事件
从服务器获取实时事件。
⚠️输出格式与 Docker 不兼容。
用法:nerdctl events [OPTIONS]
标志:
- 🐳
--format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
- 🐳
-f, --filter
:根据给定条件过滤容器- 🐳
--filter event=<value>
:活动状态。“开始”是唯一支持的状态。
- 🐳
未实现的docker events
标志:--since
,--until
🐳 nerdctl 信息
显示系统范围的信息
用法:nerdctl info [OPTIONS]
标志:
- 🐳
-f, --format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
- 🤓
--mode=(dockercompat|native)
:信息模式。“本机”产生更多信息。
🐳 nerdctl 版本
显示 nerdctl 版本信息
用法:nerdctl version [OPTIONS]
标志:
- 🐳
-f, --format
:使用给定的 Go 模板格式化输出,例如,{{json .}}
🐳 nerdctl 系统修剪
删除未使用的数据
用法:nerdctl system prune [OPTIONS]
标志:
- 🐳
-a, --all
:删除所有未使用的图像,而不仅仅是悬空的图像 - 🐳
-f, --force
:不提示确认 - 🐳
--volumes
:修剪卷
未实现的docker system prune
标志:--filter
统计资料
🐳 nerdctl 统计数据
显示容器资源使用情况统计的实时流。
用法:nerdctl stats [OPTIONS]
标志:
- 🐳
-a, --all
:显示所有容器(默认显示正在运行) - 🐳
--format=FORMAT
:使用 Go 模板漂亮地打印图像,例如,{{json .}}
- 🐳
--no-stream
:禁用流统计并仅提取第一个结果 - 🐳
--no-trunc
:不要截断输出
🐳 nerdctl 顶部
显示容器的正在运行的进程。
用法:nerdctl top CONTAINER [ps OPTIONS]
Shell 补全
🤓 nerdctl 完成 bash
为 bash 生成自动完成脚本。
用法:将以下行添加到~/.bash_profile
:
source <(nerdctl completion bash)
或者nerdctl completion bash > /etc/bash_completion.d/nerdctl
以 root 身份运行。
🤓 nerdctl 补全 zsh
为 zsh 生成自动完成脚本。
用法:参见nerdctl completion zsh --help
🤓 nerdctl 补全鱼
生成 fish的自动完成脚本。
用法:参见nerdctl completion fish --help
🤓 nerdctl 补全 powershell
为 powershell 生成自动完成脚本。
用法:参见nerdctl completion powershell --help
撰写
🐳 nerdctl 撰写
撰写
用法:nerdctl compose [OPTIONS] [COMMAND]
标志:
- 🐳
-f, --file
:指定备用撰写文件 - 🐳
-p, --project-name
:指定备用项目名称 - 🤓
--ipfs-address
:IPFS API 的多地址($IPFS_PATH
如果定义则默认使用环境变量或本地目录~/.ipfs
) - 🐳 `--profile:指定要启用的配置文件
🐳 nerdctl 撰写
创建并启动容器
用法:nerdctl compose up [OPTIONS] [SERVICE...]
标志:
- 🐳
--abort-on-container-exit
:如果任何容器停止,则停止所有容器。与 不兼容-d
。 - 🐳
-d, --detach
:分离模式:在后台运行容器。与 不兼容--abort-on-container-exit
。 - 🐳
--no-build
:不要构建图像,即使它缺失。 - 🐳
--no-color
:产生单色输出 - 🐳
--no-log-prefix
:不要在日志中打印前缀 - 🐳
--build
:在启动容器之前构建图像。 - 🤓
--ipfs
:从 IPFS 中提取基础镜像来构建镜像。ipfs.md详情请参阅。 - 🐳
--quiet-pull
:拉取但不打印进度信息 - 🐳
--scale
:将 SERVICE 扩展为 NUM 个实例。scale
如果存在,则覆盖 Compose 文件中的设置。 - 🐳
--remove-orphans
:删除 Compose 文件中未定义的服务的容器
未实现docker-compose up
(V1 ) 标志:--no-deps
,,,,,,,,,,,--force-recreate
--always-recreate-deps
--no-recreate
--no-start
--abort-on-container-exit
--attach-dependencies
--timeout
--renew-anon-volumes
--exit-code-from
未实现docker compose up
(V2)标志:--environment
🐳 nerdctl 撰写日志
创建并启动容器
用法:nerdctl compose logs [OPTIONS] [SERVICE...]
标志:
- 🐳
--no-color
:产生单色输出 - 🐳
--no-log-prefix
:不要在日志中打印前缀 - 🐳
--timestamps
:显示时间戳 - 🐳
--tail
:从日志末尾显示的行数
未实现docker compose logs
(V2)标志: --since
,--until
🐳 nerdctl compose build
建立或重建服务。
用法:nerdctl compose build [OPTIONS] [SERVICE...]
标志:
- 🐳
--build-arg
:设置服务的构建时变量 - 🐳
--no-cache
:构建镜像时不要使用缓存 - 🐳
--progress
:设置进度输出类型(auto、plain、tty)。使用 plain 显示容器输出 - 🤓
--ipfs
:从 IPFS 中提取基础镜像来构建镜像。ipfs.md详情请参阅。
未实现(docker-compose build
V1 )标志:--compress
,,,,,,,--force-rm
--memory
--no-rm
--parallel
--pull
--quiet
🐳 nerdctl compose 创建
为一个或多个服务创建容器。
用法:nerdctl compose create [OPTIONS] [SERVICE...]
标志:
- 🐳
--build
:在启动容器之前构建镜像 - 🐳
--force-recreate
:即使配置和镜像没有改变,也要重新创建容器 - 🐳
--no-build
:不要构建镜像,即使它缺失,与--build
- 🐳
--no-recreate
:如果容器存在,则不要重新创建,否则会与--force-recreate
- 🐳
--pull
:运行前拉取图像。(支持always|missing|never)(默认“missing”)
🐳 nerdctl compose exec
在服务正在运行的容器上执行命令。
用法:nerdctl compose exec [OPTIONS] SERVICE COMMAND [ARGS...]
标志:
- 🐳
-d, --detach
:分离模式:在后台运行命令 - 🐳
-e, --env
:设置环境变量 - 🐳
--index
:如果服务有多个实例,则设置容器的索引。(默认为 1) - 🐳
-i, --interactive
:即使未连接也保持 STDIN 开放(默认为 true) - 🐳
--privileged
:授予命令扩展权限 - 🐳
-t, --tty
:分配一个伪 TTY - 🐳
-T, --no-TTY
:禁用伪 TTY 分配。默认情况下,nerdctl compose exec 会分配一个 TTY。 - 🐳
-u, --user
:用户名或 UID(格式<name|uid>[:<group|gid>]
:) - 🐳
-w, --workdir
:容器内的工作目录
🐳 nerdctl compose down
删除容器和相关资源
用法:nerdctl compose down [OPTIONS]
标志:
- 🐳
-v, --volumes
:删除 Compose 文件的卷部分中声明的命名卷以及附加到容器的匿名卷 - 🐳
--remove-orphans
:删除 Compose 文件中未定义的服务容器。
未实现docker-compose down
(V1)标志:--rmi
,--timeout
🐳 nerdctl 组合图片
列出服务中创建的容器所使用的镜像
用法:nerdctl compose images [OPTIONS] [SERVICE...]
标志:
- 🐳
-q, --quiet
:仅显示数字图像 ID
🐳 nerdctl compose start
启动现有的服务容器
用法:nerdctl compose start [SERVICE...]
🐳 nerdctl compose stop
停止服务中的容器但不移除它们。
用法:nerdctl compose stop [OPTIONS] [SERVICE...]
标志:
- 🐳
-t, --timeout
:终止前等待停止的秒数(默认 10)
🐳 nerdctl 撰写端口
打印服务容器端口绑定的公共端口
用法:nerdctl compose port [OPTIONS] SERVICE PRIVATE_PORT
标志:
- 🐳
--index
:如果服务有多个实例,则为容器的索引。(默认为 1) - 🐳
--protocol
:端口协议(tcp|udp)(默认“tcp”)
🐳 nerdctl compose ps
列出服务的容器
用法:nerdctl compose ps [OPTIONS] [SERVICE...]
- 🐳
-a, --all
:显示所有容器(默认显示正在运行) - 🐳
-q, --quiet
:仅显示容器 ID - 🐳
--format
:格式化输出- 🐳
--format=table
(默认):表格 - 🐳
--format=json'
:JSON
- 🐳
- 🐳
-f, --filter
:根据给定条件过滤容器- 🐳
--filter status=<value>
:其中之一created, running, paused, restarting, exited, pausing, unknown
。请注意,removing, dead
不支持并将被忽略
- 🐳
- 🐳
--services
:打印服务名称,每行一个 - 🐳
--status
:按状态过滤容器。值:[暂停 | 重新启动 | 运行 | 已创建 | 已退出 | 暂停 | 未知]
🐳 nerdctl compose pull
拉取服务镜像
用法:nerdctl compose pull [OPTIONS] [SERVICE...]
标志:
- 🐳
-q, --quiet
:拉取但不打印进度信息
未实现(V1 docker-compose pull
)标志:--ignore-pull-failures
,,,--parallel
--no-parallel
include-deps
🐳 nerdctl 撰写推送
推送服务图像
用法:nerdctl compose push [OPTIONS] [SERVICE...]
未实现docker-compose pull
(V1)标志:--ignore-push-failures
🐳 nerdctl compose pause
暂停服务容器内的所有进程。可以使用以下命令取消暂停nerdctl compose unpause
用法:nerdctl compose pause [SERVICE...]
🐳 nerdctl compose unpause
取消暂停服务容器内的所有进程
用法:nerdctl compose unpause [SERVICE...]
🐳 nerdctl 撰写配置
验证并查看 Compose 文件
用法:nerdctl compose config
标志:
- 🐳
-q, --quiet
:拉取但不打印进度信息 - 🐳
--services
:打印服务名称,每行一个。 - 🐳
--volumes
:打印卷名称,每行一个。 - 🐳
--hash="*"
:打印服务配置哈希,每行一个。
未实现docker-compose config
(V1)标志:--resolve-image-digests
,--no-interpolate
未实现(V2 docker compose config
)标志:--resolve-image-digests
,,,,,--no-interpolate
--format
--output
--profiles
🐳 nerdctl compose cp
在服务容器和本地文件系统之间复制文件/文件夹
用法:
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>nerdctl compose cp [OPTIONS] SERVICE:SRC_PATH DEST_PATH|-
nerdctl compose cp [OPTIONS] SRC_PATH|- SERVICE:DEST_PATH [flags]
</code></span></span></span></span>
标志:
- 🐳
--dry-run
:在试运行模式下执行命令 - 🐳
-L, --follow-link
:始终遵循 SRC_PATH 中的符号链接 - 🐳
--index int
:如果服务有多个副本,则为容器的索引
未实现的docker compose cp
标志:--archive
🐳 nerdctl compose kill
强制停止服务容器
用法:nerdctl compose kill [OPTIONS] [SERVICE...]
标志:
- 🐳
-s, --signal
:向容器发送信号(默认:“SIGKILL”)
🐳 nerdctl compose restart
重新启动给定(或所有)服务的容器
用法:nerdctl compose restart [OPTIONS] [SERVICE...]
标志:
- 🐳
-t, --timeout
:重新启动前等待的秒数(默认 10)
🐳 nerdctl 撰写 rm
删除已停止的服务容器
用法:nerdctl compose rm [OPTIONS] [SERVICE...]
标志:
- 🐳
-f, --force
:不提示确认(与 不同-f
,nerdctl rm
表示强制删除)。 - 🐳
-s, --stop
:移除之前先停止容器。 - 🐳
-v, --volumes
:删除与容器关联的匿名卷。
🐳 nerdctl compose 运行
在服务上运行一次性命令
用法:nerdctl compose run [OPTIONS] SERVICE [COMMAND] [ARGS...]
未实现docker-compose run
(V1)标志:--use-aliases
,--no-TTY
未实现(docker compose run
V2)标志:--use-aliases
,,--no-TTY
--tty
🐳 nerdctl 撰写顶部
显示服务容器的运行进程
用法:nerdctl compose top [SERVICES...]
🐳 nerdctl 撰写版本
显示 Compose 版本信息(即 nerdctl 版本)
用法:nerdctl compose version
标志:
- 🐳
-f, --format
:格式化输出。值:[pretty | json](默认“pretty”) - 🐳
--short
:仅显示 Compose 的版本号
IPFS 管理
P2P 镜像分发(IPFS)完全是可选的。您的主机不连接到任何 P2P 网络,除非您选择安装并运行 IPFS 守护程序。
🤓 nerdctl ipfs registry serve
在本地主机上提供由 IPFS 支持的只读注册表。这是nerdctl build
从 IPFS 提取基础镜像时需要的。其他命令(例如nerdctl push ipfs://<image-name>
和nerdctl pull ipfs://<CID>
)不需要这个。
您需要ipfs
在主机上安装命令。请参阅ipfs.md以了解详细信息。
用法:nerdctl ipfs registry serve [OPTIONS]
标志:
- 🤓
--ipfs-address
:IPFS API 的多地址(默认从文件中提取$IPFS_PATH/api
。如果$IPFS_PATH
环境变量不存在,则默认为~/.ipfs
)。 - 🤓
--listen-registry
:收听地址(默认localhost:5050
)。 - 🤓
--read-retry-num
:在 IPFS 上重试查询的次数(默认 0(不重试)) - 🤓
--read-timeout
:对 IPFS 的读取请求的超时时长(默认 0(无超时))
全局标志
- 🤓 🟦
--address
:containerd 地址,可选带“unix://”前缀 - 🤓 🟦
-a
,--host
,-H
:已弃用的别名--address
- 🤓 🟦
--namespace
:containerd 命名空间 - 🤓 🟦
-n
:弃用的别名--namespace
- 🤓 🟦
--snapshotter
:containerd 快照程序 - 🤓 🟦
--storage-driver
:弃用的别名--snapshotter
- 🤓🟦
--cni-path
:CNI 二进制路径(默认值:/opt/cni/bin
)[$CNI_PATH
] - 🤓 🟦
--cni-netconfpath
:CNI netconf 路径(默认值/etc/cni/net.d
:) [$NETCONFPATH
] - 🤓 🟦
--data-root
:nerdctl 数据根,例如“/var/lib/nerdctl” - 🤓
--cgroup-manager=(cgroupfs|systemd|none)
:cgroup 管理器- 默认值:cgroup v2(rootful 和 rootless)上的“systemd”,v1 rootful 上的“cgroupfs”,v1 rootless 上的“none”
- 🤓
--insecure-registry
:跳过验证 HTTPS 证书,并允许回退到纯 HTTP - 🤓
--host-gateway-ip
: --add-host 中的特殊 'host-gateway' 字符串解析为的 IP 地址。如果不设置 --add-host,则无效- 默认值:主机的 IP 地址
全局标志也可以在/etc/nerdctl/nerdctl.toml
(rootful) 和~/.config/nerdctl/nerdctl.toml
(rootless) 中指定。请参阅./config.md。
未实现的 Docker 命令
容器管理:
docker diff
docker checkpoint *
图像:
docker export
和docker import
docker trust *
(相反,nerdctl 支持nerdctl pull --verify=cosign|notation
和nerdctl push --sign=cosign|notation
。请参阅./cosign.md和./notation.md。)docker manifest *
网管:
docker network connect
docker network disconnect
注册表:
docker search
撰写:
docker-compose events|scale
其他的:
docker system df
docker context
- Swarm 命令尚未实现,并且不会实现:
docker swarm|node|service|config|secret|stack *
- 插件命令尚未实现且不会被实现:
docker plugin *