一、批量下载docker镜像并批量导入导出到其它地方
起因是我需要下载一批镜像,但是我使用得Linux机器上无法下载,因为涉及外网,所以我计划在另一台外网机器上完成所有镜像的下载后,再批量导出、导入到目标机器上,开干!
1、编写一个脚本 images.sh 文件:
#!/bin/bash
images=(
docker.io/cockpit/kubernetes:latest
docker.io/openshift/origin-haproxy-router:v3.11
docker.io/openshift/origin-node:v3.11
docker.io/openshift/origin-control-plane:v3.11
docker.io/openshift/origin-deployer:v3.11.0
docker.io/openshift/origin-pod:v3.11.0
docker.io/openshift/origin-web-console:v3.11
docker.io/openshift/origin-docker-registry:v3.11
docker.io/openshift/origin-metrics-server:v3.11
docker.io/openshift/origin-console:v3.11
docker.io/openshift/origin-metrics-heapster:v3.11
docker.io/openshift/origin-metrics-hawkular-metrics:v3.11
docker.io/openshift/origin-metrics-schema-installer:v3.11
docker.io/openshift/origin-metrics-cassandra:v3.11
quay.io/coreos/cluster-monitoring-operator:v0.1.1
quay.io/coreos/prometheus-config-reloader:v0.23.2
quay.io/coreos/prometheus-operator:v0.23.2
docker.io/openshift/prometheus-alertmanager:v0.15.2
docker.io/openshift/prometheus-node-exporter:v0.16.0
docker.io/openshift/prometheus:v2.3.2
docker.io/grafana/grafana:5.2.1
quay.io/coreos/kube-rbac-proxy:v0.3.1
quay.io/coreos/etcd:v3.2.22
quay.io/coreos/kube-state-metrics:v1.3.1
docker.io/openshift/oauth-proxy:v1.1.0
quay.io/coreos/configmap-reload:v0.0.1
quay.io/openshift/origin-node:v3.11
quay.io/openshift/origin-pod:v3.11
)
for imageName in ${images[@]} ; do
docker pull $imageName
done
2、授予执行权限:
chmod +x images.sh
3、执行脚本并打印日志,当然也可以直接执行:
nohup ./images.sh > log.file 2>&1 &
下载完成后,查看所有的镜像是否完整:
[root@VM-0-12-centos jiguiquan]# docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}"
REPOSITORY TAG IMAGE ID
openshift/origin-node v3.11 983f6b1c6bd4
openshift/origin-control-plane v3.11 7a2f8e6e6a15
openshift/origin-deployer v3.11.0 e6d4226c7cc0
openshift/origin-haproxy-router v3.11 e3afcd798b00
openshift/origin-pod v3.11.0 560ab7ad8bbe
cockpit/kubernetes latest 736c0218e939
openshift/origin-docker-registry v3.11 9dffb2abf1dd
openshift/origin-console v3.11 ab1db955ef9e
openshift/origin-web-console v3.11 be30b6cce5fa
openshift/origin-metrics-server v3.11 8c99f32f40d3
openshift/origin-metrics-heapster v3.11 69421c019449
openshift/origin-metrics-hawkular-metrics v3.11 59e2258250c4
openshift/origin-metrics-schema-installer v3.11 342f50fded7d
openshift/origin-metrics-cassandra v3.11 8176cfabc16b
quay.io/coreos/cluster-monitoring-operator v0.1.1 4488a207a5bc
quay.io/coreos/prometheus-config-reloader v0.23.2 2ed5973a47af
quay.io/coreos/prometheus-operator v0.23.2 835a7e260b35
openshift/prometheus-alertmanager v0.15.2 68bbd0006378
openshift/prometheus-node-exporter v0.16.0 f9f775bf6d0e
openshift/prometheus v2.3.2 e362c322f000
grafana/grafana 5.2.1 1bfead9ff707
quay.io/coreos/kube-rbac-proxy v0.3.1 992ac1a5e7c7
quay.io/coreos/etcd v3.2.22 ff5dd2137a4f
quay.io/coreos/kube-state-metrics v1.3.1 a9c8f313b7aa
openshift/oauth-proxy v1.1.0 90c45954eb03
quay.io/coreos/configmap-reload v0.0.1 3129a2ca29d7
4、一键导出所有镜像到 openshift.tar 包:
docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o openshift.tar
5、将tar包拷贝到目标服务器上,执行 load 导入命令:
docker load -i openshift.tar
二、将当前运行状态的docker容器状态导出为镜像,保存起来
起因是因为,我通过官方教程,快速部署了一个大平台,这个平台是由很多容器一起工作才能支撑,我需要修改前端页面的一些东西,大成本的方案肯定是下载官方源码重新进行改造编译打包镜像等操作;
但是那样太烦了,我就直接进入容器内部修改了一些东西,运行正常后,我将当前状态导出为自己的镜像保存下来,以后再部署就不用再进入修改啦。
docker commit -m "jiguiquan" -a "jiguiquan" 163950a65bfb registry.cn-hangzhou.aliyuncs.com/jgqk8s/jgq-console:v3.1.1



