docker 镜像相关操作
1. 如何将本地镜像 共享到其他主机进行使用
方案一: docker hub docker仓库,将docker镜像上次到docker仓库,其他主机pull 该镜像
方案二: 私有仓库,在企业内部一般使用私有仓库进行镜像传输。
常见的私有仓库有:
> * registry
> * harbor
> * nexus私服
方案三:文件传输,将镜像打包为文件,在多台主机中传输
镜像保存为文件
docker save -o 镜像包名 镜像名:版本
# 制作镜像
[root@hw-apptest02-11-174 Dockerfile]#
[root@hw-apptest02-11-174 Dockerfile]# docker build -t rabbitmq-test:v2 .
Sending build context to Docker daemon 46.59kB
Step 1/3 : FROM bitnami/rabbitmq:3.7.15-debian-9-r25
---> bab8c65b1cfb
Step 2/3 : MAINTAINER twj
---> Running in 35458d3e7a8b
Removing intermediate container 35458d3e7a8b
---> 446f8327a125
Step 3/3 : ADD rabbitmq_delayed_message_exchange-20171201-3.7.x.ez /opt/bitnami/rabbitmq/plugins/
---> 45e56477f99c
Successfully built 45e56477f99c
Successfully tagged rabbitmq-test:v2
# 打包镜像
[root@hw-apptest02-11-174 Dockerfile]# docker save -o rabbitmq-test.tar rabbitmq-test:v2
[root@hw-apptest02-11-174 Dockerfile]# ls
Dockerfile rabbitmq_delayed_message_exchange-20171201-3.7.x.ez rabbitmq-test.tar
加载镜像,将镜像加载到本地
docker load < 镜像包名
# 将镜像传输到其他主机上面执行镜像加载操作
[root@hw-apptest03-11-1761 ~]# docker load < rabbitmq-test.tar
1fbb4d6c55ca: Loading layer [==================================================>] 47.62kB/47.62kB
Loaded image: rabbitmq-test:v2
[root@hw-apptest03-11-1761 ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
rabbitmq-test v2 45e56477f99c 59 seconds ago 201MB
方案四: 使用dockerfile文件,在新主机上面构建生产新的镜像
2. 如何在国内加载google镜像
方案一:docker主机上面搭建梯子
方案二: 网上找代理,或者使用别人在docker hub上面共享的镜像
方案三: 自己做google镜像
原理: docker hub 或者阿里云都提供这样一个功能,关联 github ,自动触发构建docker镜像。在github上面创建一个项目,里面存储着我们的dockerfile文件,但git有提交,dockerhub会自动构建生成新的镜像。
操作步骤
1. github创建一个项目,用于后期存放不通版本google镜像的 'dockerfile'
2. 编辑一个dockerfile
```
From k8s.gcr.io/kube-scheduler-amd64:v1.9.3
```
3. 提交github,查看dockerhub
我们创建一个dockerfile,基于google的镜像镜像的操作,然后什么也不新增操作,生成的镜像则为google镜像的克隆
方案四: 使用微软云的加速镜像
```
docker pull gcr.azk8s.cn/google-containers/federation-controller-manager-arm64:v1.3.1-beta.1
# eq
docker pull gcr.io/google-containers/federation-controller-manager-arm64:v1.3.1-beta.1
```