sudo apt-get install -y docker.io docker-compose sudo apt-get install -y docker-ce docker-ce-cli # qemu-user-static 用来模拟多平台环境,它依赖于binfmt-support,所以这两者都要安装。 sudo apt-get install -y qemu-user-static binfmt-support # 通知Docker使用qemu sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
激活客户端的实验属性配置: export DOCKER_CLI_EXPERIMENTAL=enabled
export DOCKER_CLI_EXPERIMENTAL=enabled
激活服务端的实验属性配置:/etc/docker/daemon.json中添加配置
{ "experimental": true }
执行
systemctl daemon-reload systemctl restart docker.service
FROM --platform=$TARGETPLATFORM debian:10 MAINTAINER "testok" RUN ["/bin/bash", "-c", "echo hello"] ADD rootfs.tgz / CMD ["/bin/bash", "-c", "echo hello testok"] WORKDIR /
filesystem.squashfs
unsquashfs
squashfs-root
tar zcvf rootfs.tgz
FROM --platform=$TARGETPLATFORM debian:10 MAINTAINER "testok" RUN ["/bin/bash", "-c", "echo hello"] ADD rootfs_arm64.tgz / CMD ["/bin/bash", "-c", "echo hello testok"] WORKDIR /
docker buildx build -t name:tag --platform linux/arm64 . --load
docker cp 工程目录 containerid:/镜像里的路径
默认qemu的配置中,是不支持 loongarch 架构的, 所以如果镜像的架构是 loongarch 的话,那需要另外注册
/usr/bin
wget https://gitee.com/michael0066/qemu-loongarch64-static/raw/master/qemu-loongarch64-static
echo ":qemu-loongarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x01:\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-loongarch64-static:" > /proc/sys/fs/binfmt_misc/register
检查是否注册成功 cat /proc/sys/fs/binfmt_misc/qemu-loongarch 与 cat /proc/sys/fs/binfmt_misc/qemu-mips64el 板式相似
3. 编辑Dockerfile ```Dockerfile FROM --platform=$TARGETPLATFORM loongsongd/debian10_loongarch64_x64:e15.0 MAINTAINER "testok" RUN ["/bin/bash", "-c", "echo hello"] ADD rootfs_loonarch64.tgz / CMD ["/bin/bash", "-c", "echo hello testok"] WORKDIR /
docker buildx build -t name:tag --platform linux/loongarch64 . --load
# 将镜像保存为本地tar文件 docker load -o/home/dtx/demo-1.tar docker save imageid > /root/demo-1.tar # 载入镜像 docker load -i /home/dtx/demo-1.tar docker load < /root/demo-1.tar # 运行一个容器 docker run --network=host -itd name:tag /bin/bash docker exec -it containerid /bin/bash # 提交镜像,新的镜像名称为name,版本为tag docker commit containerid name:tag # 查看正在运行的docker容器 docker ps # 停止正在运行的容器 docker stop containerid # 删除停止运行的容器 docker rm containerid # 删除docker镜像 docker rmi imageid
厉害
Popular Ranking
Popular Events
安装docker
创建Buildx构建容器
激活客户端的实验属性配置:
export DOCKER_CLI_EXPERIMENTAL=enabled
激活服务端的实验属性配置:/etc/docker/daemon.json中添加配置
执行
一个Dockerfile示例
用uos镜像打包一个arm容器用于编译环境
filesystem.squashfs
,unsquashfs
解压得到squashfs-root
, 后再压缩tar zcvf rootfs.tgz
docker buildx build -t name:tag --platform linux/arm64 . --load
docker cp 工程目录 containerid:/镜像里的路径
loongarch 架构的支持
默认qemu的配置中,是不支持 loongarch 架构的, 所以如果镜像的架构是 loongarch 的话,那需要另外注册
/usr/bin
目录 qemu-loongarch64-static检查是否注册成功
cat /proc/sys/fs/binfmt_misc/qemu-loongarch
与
cat /proc/sys/fs/binfmt_misc/qemu-mips64el
板式相似
docker buildx build -t name:tag --platform linux/loongarch64 . --load
常用的docker命令