我目前正在尝试使用 BuildKit/BuildX 构建多平台映像(x86_64、arm64、armv7、armv6),并且似乎构建成功,但我似乎找不到映像所在的位置。与我之前的 x86_64 版本相比,它并没有显示出任何变化,并且当尝试将其推送到我的存储库时,它说所有层都已经存在,并且只存在一个平台。我用来构建图像的命令是:
docker buildx build \
--platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -m 5120M \
--no-cache \
--progress auto \
--pull -t frostedflakez/php-mysql-webserver:php-latest-7.4 \
--push ./
Run Code Online (Sandbox Code Playgroud)
构建后我从终端得到的最后几行是:
=> exporting to image 264.6s
=> => exporting layers 46.1s
=> => exporting manifest sha256:585ca6c82887a6f0178007c905f11c7fbde5e6220b9c451892c40d2844b43403 0.0s
=> => exporting config sha256:0923c92918eb6fad44396000250f11946f38f6e1eb0d78ec916a794f395f526a 0.0s
=> => exporting manifest sha256:0b9fceb5f74bca71942ce3e1aa5fdf5ed0453e16aff53bec5d22a9c15233fbc2 0.0s
=> => exporting config sha256:ba19e5dab51b74549775cfbc1b0ce3961342a2c859050d98e68b6130ee276e91 0.0s
=> => exporting manifest sha256:540ef45e6b3cfec74af6a4c641b70009587b19b1fe5702338a9b93b409136b28 0.0s
=> => exporting config sha256:7be378e1831fa4bd00f1595bf4d511286c600d21ee245db567115fb85fdd24cc 0.0s
=> => exporting manifest sha256:9a339a6283db4ffe56c735d85306e87261aebe8a7f696984da67720f24d4ab73 0.0s …Run Code Online (Sandbox Code Playgroud) 我的 docker-compose.yml 看起来像这样
postgres:
container_name: postgres-container-1
image: postgres:latest
ports:
- "15432:5432"
Run Code Online (Sandbox Code Playgroud)
当我尝试跑步时
docker compose up -d
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
(root) Additional property postgres is not allowed
Run Code Online (Sandbox Code Playgroud)
然而当我跑步时
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
一切都按预期运行,但我收到信息消息
Docker Compose is now in the Docker CLI, try `docker compose up`
Run Code Online (Sandbox Code Playgroud)
所以我认为 docker-compose 很快就会过时......我做错了什么?
我的计算机上安装了适用于 Windows 的 Docker Desktop 和 Git(包括 Git Bash)。该docker命令在命令提示符和 Powershell 中有效,但在 Git Bash 中无效。当我docker在 Git Bash 中运行命令时,出现以下错误。
exec: "com.docker.cli": executable file not found in %PATH%
Current PATH : ...;C:\Program Files\Docker\Docker\resources\bin;D:\Program Files\Git\cmd;C:\ProgramData\DockerDesktop\version-bin;...
Run Code Online (Sandbox Code Playgroud)
我需要让 Docker 通过 Git Bash 工作,以便使用 Git Bash运行.sh包含命令的文件。docker我找不到发生此错误的任何原因。
...是 中的其他路径PATH,但未连接到 Git Bash 或 Docker
我试图在我自己的项目中利用docker/cli客户端库来创建/管理堆栈。
但是,我在构建项目时遇到了问题。
代码如下:
package main
import (
"fmt"
"log"
"github.com/docker/cli/cli/command"
"github.com/docker/cli/cli/command/stack"
"github.com/docker/cli/cli/flags"
)
func main() {
cli, err := command.NewDockerCli(command.WithStandardStreams())
if err != nil {
log.Fatal(err)
}
cli.Initialize(flags.NewClientOptions())
cmd := stack.NewStackCommand(cli)
cmd.SetArgs([]string{"deploy", "--compose-file", "docker-compose.yml", "test"})
err = cmd.Execute()
if err != nil {
log.Fatal(err)
}
fmt.Println("success!")
}
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个最小的 go.mod:
module github.com/dev/test
go 1.16
Run Code Online (Sandbox Code Playgroud)
当我跑步时go get;我收到以下错误:
github.com/dev/test imports
github.com/docker/cli/cli/command/stack imports
github.com/docker/cli/cli/command/service imports
github.com/docker/swarmkit/api/defaults: cannot find module providing package github.com/docker/swarmkit/api/defaults
github.com/dev/test imports
github.com/docker/cli/cli/command/stack imports
github.com/docker/cli/cli/command/service imports
github.com/docker/swarmkit/api/genericresource: cannot …Run Code Online (Sandbox Code Playgroud) 我是 Docker 新手,但我对docker images ls -aDocker 桌面中的行为有何不同感到困惑。与在 Linux 中运行时不同,它不显示中间/悬挂图像,但它只列出我明确标记的图像。
为了说明这个问题,假设我有这个 Dockerfile。
FROM python:3
RUN apt update
RUN apt install -y vim
Run Code Online (Sandbox Code Playgroud)
将其保存为 Dockerfile 并通过命令构建并标记图像docker build -t pyvim .
docker images -a当我在 Linux 机器上执行命令时,我得到
REPOSITORY TAG IMAGE ID CREATED SIZE
pyvim latest 9d3e171e0220 13 minutes ago 938MB
<none> <none> 360f898a1298 13 minutes ago 904MB
python 3 cba42c28d9b8 2 days ago 886MB
Run Code Online (Sandbox Code Playgroud)
这就是我所期望的,Python 3 图像,我的图像,以及运行apt update.
然而,在 Mac 或 Windows 上执行相同的步骤后,两者都运行“Docker 桌面”,docker images -a仅显示“pyvim”图像: …
我使用 minkube 作为 docker 引擎。因此,我可以使用“docker ps”命令获取与 minikube 容器相关的许多容器实例。我想看看没有它们的容器。
minikube 容器的名称以“k8s-bra-bra”开头,所以我想使用它进行过滤。
docker ps命令支持--filter选项,但我不知道如何设置 NOT 条件,例如docker ps --filter "name!=k8s*". 请帮忙。谢谢。
我正在尝试让 docker cli 在 Windows 上运行。我已按照https://lippertmarkus.com/2021/09/04/containers-without-docker-desktop/中的步骤进行操作,但是当我执行时,docker run hello-world出现以下错误消息:
PS C:\> docker run hello-world
docker: Error response from daemon: hcsshim::CreateComputeSystem 27b5c80932aef84e743fe88bf023bd6e1cea1bbf25b0ab8875c8af701e3282b7: The request is not supported.
Run Code Online (Sandbox Code Playgroud)
事件查看器中有两个错误。以上及也cleanup: failed to delete container from containerd: no such container。
我已经确认 docker 服务正在运行。我不知道还要检查什么。--verbose没有给我任何额外的东西。
非常欢迎所有建议。
通过设置环境变量,docker cli 可以访问远程 docker 服务器DOCKER_HOST。
大多数情况下,tcp://<hostname-or-ip>:<port>或者有时ssh://<hostname-or-ip>:<port>会使用。
不幸的是,docker 文档讨论了一切,除了这个变量可能的 URL 格式。它们是什么,如何工作?
docker ×8
docker-cli ×8
docker-swarm ×1
git ×1
git-bash ×1
go ×1
go-modules ×1
path ×1
windows ×1