构建与推送镜像
单平台构建推送
docker login
docker build -t imagesName:Tag .
docker push imagesName:Tag
修改镜像名称:
docker tag IMAGES-ID imagesName:Tag
多平台构建推送
通过 docker pull 或 docker run 拉取一个支持跨平台的镜像时,docker会自动选择与当前运行平台相匹配的镜像.
buildx插件能够实现docker跨平台构建. 实现在x86平台构建amd64/arm64镜像并推送. 参考文章、参考文章
docker login
【最好先登录,构建后直接推送】
- 安装buildx
shell
DOCKER_BUILDKIT=1 docker build --platform=local -o . "https://github.com/docker/buildx.git"
mkdir -p ~/.docker/cli-plugins
mv buildx ~/.docker/cli-plugins/docker-buildx
# 安装多平台轻量级的虚拟机, 在虚拟机系统中构建镜像
docker run --privileged --rm tonistiigi/binfmt --install all
# 创建一个新的支持多架构的构建器【以下命令只需执行一条】
# 使用默认镜像
docker buildx create --name mybuilder --driver docker-container
# 国内环境
docker buildx create --use --name=mybuilder-cn --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master
# 指定builder
docker buildx use mybuilder
- 构建并推送镜像【记得先登录】
shell
# --platform:指定平台 --push:构建完成自动推送
docker buildx build --platform linux/amd64,linux/arm64 --push -t imagesName:Tag .
- 验证
shell
# 查看已推送到远程仓库的镜像
docker buildx imagetools inspect imagesName:Tag
# 在不同的平台以 latest 标签拉取并运行镜像,验证构建结果是否正确