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) 的方式删除错误打包的镜像.