Skip to main content

使用容器

nerdctl 是一个与 Docker 兼容的容器 CLI。nerdctl 主要用于对 Docker 中不存在的 containerd 尖端功能进行试验。

Moby 是一个由 Docker 创建的开源项目,用于启用和加速软件容器化。组件包括容器构建工具、容器镜像仓库、编排工具和运行时等。Docker CLI 使用 Moby 运行时。

运行容器#

要使用默认的 bridge CNI 网络 (10.4.0.0/24) 运行容器:

nerdctl run -it --rm alpine

要使用 BuildKit 构建镜像:

nerdctl build -t foo /some-dockerfile-directory
nerdctl run -it --rm foo

要使用 BuiltKit 进行构建并将输出发送到本地目录:

nerdctl build -o type=local,dest=. /some-dockerfile-directory

Docker Compose#

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。

nerdctl-compose CLI 用于与 docker-compose 兼容:

nerdctl compose up -d
nerdctl compose down

暴露端口#

要为容器公开端口 8000:

nerdctl run -d -p 8000:80 nginx

然后,你可以在浏览器中访问 http://localhost:8000/ 来访问容器:

注意:默认情况下,暴露的端口可以在 macOS 和 Linux 上的所有网络接口上访问。然而,在 Windows 上,暴露的端口只能通过 localhost 网络接口访问(参见 issue #1180)。目前的一个解决方法是在 Windows 主机上配置 portproxy,从而将端口公开给其他网络接口

netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=8080 connectaddress=localhost

定位 Kubernetes 命名空间#

你还可以通过 containerd 使用 --namespace 参数来定位 Kubernetes 命名空间。请注意 docker 不使用命名空间。

nerdctl --namespace k8s.io build -t demo:latest /code/demos/rd/anvil-app
nerdctl --namespace k8s.io ps
Last updated on by vickyhella