为了跨平台打包 Docker 镜像,你可以使用 Docker 的多平台支持功能,这是在 Docker Desktop 2.3.0 以上版本以及 Docker Engine 19.03.0 以上版本中引入的。这个功能使得你可以在一个平台上(比如 macOS 或者 Linux)构建运行在另一个平台上的 Docker 镜像(比如 ARM 或者 Windows)。
这里有一个基本的步骤来跨平台打包 Docker 镜像:
-
开启实验特性:首先,你需要开启 Docker 的实验特性。你可以通过在 Docker 配置文件(通常是
~/.docker/config.json)中添加"experimental": "enabled"来开启实验特性。 -
安装 QEMU:为了能够在 Docker 中模拟不同的硬件平台,你需要在你的机器上安装 QEMU。在大部分的 Linux 发行版中,你可以通过包管理器来安装。例如,在 Ubuntu 中,你可以运行
sudo apt-get install qemu。 -
使用 Docker buildx:Docker buildx 是一个实验性的插件,它为 Docker 提供了完全的构建工具集,包括跨平台构建。你可以使用以下命令来创建一个新的构建实例,并使用 QEMU 来启动它:
docker buildx create --use然后,你可以使用以下命令来启动你的构建实例:
docker buildx inspect --bootstrap -
构建并推送镜像:最后,你可以使用
docker buildx build命令来构建并推送你的多平台 Docker 镜像。这个命令和docker build非常相似,但是它接受一个--platform参数,这个参数允许你指定你想要构建镜像的平台。例如,你可以运行以下命令来构建一个既能在 Linux/amd64 平台上运行,又能在 Linux/arm64 平台上运行的镜像:docker buildx build --platform linux/amd64,linux/arm64 -t your-image-name . --push注意,
--push参数是必须的,因为 Docker 目前不支持在本地存储多平台镜像。
以上就是基本的步骤。具体的过程可能会因为你的具体需求和你的 Docker 版本而有所不同。
总结
docker run -d --name it-tools --restart unless-stopped -p 8080:80 laughing66/ww-it-tools:v1.0.0
注意,--push 参数是必须的,因为 Docker 目前不支持在本地存储多平台镜像。 类比bash windows下保存上传Linux也有问题
docker buildx build --platform linux/amd64,linux/arm64 --push -t laughing66/ww-it-tools:v1.0.0 .