Docker导出镜像的总结

发布时间 2023-10-31 12:01:30作者: 济南小老虎

Docker导出镜像的总结


安装Docker

mkdir -p /etc/docker
cat >/etc/docker/daemon.josn <<EOF
{
"bip":"10.233.0.1/16"
}
EOF

yum install docker -y

systemctl enable --now docker 

下载部分镜像

docker pull redis:7.2
docker pull nginx:1.24
docker pull elasticsearch:8.6.2
docker pull kibana:8.6.2
docker pull minio/minio:RELEASE.2023-10-25T06-33-25Z
docker pull bitnami/kafka:3.5
docker pull pingcap/tikv:v6.5.3
docker pull nacos/nacos-server:v2.2.1
docker pull zookeeper:3.8.0
docker pull apache/rocketmq:5.1.3
docker pull bladex/sentinel-dashboard:1.8.0

批量导出所有镜像

[root@model ~]# time docker save $(docker images --format '{{.Repository}}:{{.Tag}}') -o allinone_amd64.tar
real    2m25.942s
user    0m0.677s
sys     0m3.995s
文件大小 5.8G
[root@model ~]# time docker save $(docker images --format '{{.Repository}}:{{.Tag}}') |gzip > allinone_amd64.tar.gz
real    6m29.394s
user    5m17.142s
sys     0m9.273s
文件大小 2.9G

导入情况-这时仅进行了解压缩未进行导入

root@model ~]# time docker load -i allinone_amd64.tar
Loaded image: pingcap/tikv:v6.5.3
Loaded image: bladex/sentinel-dashboard:1.8.0
Loaded image: redis:7.2
Loaded image: bitnami/kafka:3.5
Loaded image: apache/rocketmq:5.1.3
Loaded image: nacos/nacos-server:v2.2.1
Loaded image: kibana:8.6.2
Loaded image: elasticsearch:8.6.2
Loaded image: zookeeper:3.8.0
Loaded image: minio/minio:RELEASE.2023-10-25T06-33-25Z
Loaded image: nginx:1.24.0


real    0m35.821s
user    0m0.408s
sys     0m3.586s

连解压缩带导入:
real    1m34.003s
user    0m0.438s
sys     0m2.465s

[root@model ~]# time docker load -i allinone_amd64.tar.gz
Loaded image: redis:7.2
Loaded image: bitnami/kafka:3.5
Loaded image: kibana:8.6.2
Loaded image: elasticsearch:8.6.2
Loaded image: zookeeper:3.8.0
Loaded image: bladex/sentinel-dashboard:1.8.0
Loaded image: minio/minio:RELEASE.2023-10-25T06-33-25Z
Loaded image: nginx:1.24.0
Loaded image: apache/rocketmq:5.1.3
Loaded image: pingcap/tikv:v6.5.3
Loaded image: nacos/nacos-server:v2.2.1

real    0m42.525s
user    0m0.219s
sys     0m1.816s

链接压缩带导入:
real    1m35.373s
user    0m0.287s
sys     0m2.285s

导出每个镜像到单独的文件夹

for i in `docker images |grep -v REP |awk -v OFS=':'  '{print $1,$2}'` ; do docker save $i |gzip > onebyone_amd64/${i##*/}.tar.gz ; done

批量进行tag然后进行push

for i in `docker images |grep -v REP |awk -v OFS=':'  '{print $1,$2}'` ; do docker tag $i 192.168.254.211:80/middleware/$i &&  docker push 192.168.254.211:80/middleware/$i ; done

如果不小心执行错了命令
可以执行
docker rmi $(docker images --format '{{.Repository}}:{{.Tag}}' |grep 192.168)  的方式删除错误打包的镜像.