docker - 镜像管理

docker产生的本质是为了让开发环境更好的进行迁移和分享,因此我们需要一个远程仓库可以保存我们的镜像,以便进行镜像的分享,和不同环境的迁移。同时在此介绍一些常用的docker仓库和配置方式,供大家参考

下载镜像

1
2
3
4
5
# 下载一个公共镜像
$ docker pull centos:centos7.6.1810

# 从私有仓库下载一个镜像
$ docker pull registry.cn-shenzhen.aliyuncs.com/ben*/ubuntu:[镜像版本号]

上传镜像

针对没指定远程的镜像,需要先进行标记(docker tag),将本地镜像和远程仓库进行关联。
粗暴一点理解就是在镜像前面加上自己的docker hub的Docker ID,如果是第三方仓库或私有仓库还需要标注注册的主机名/IP和端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

#可以使用镜像ID进行标记
docker tag 0e5574283393 ben*/ubuntu:version1.0

# 可以使用本地的镜像名称进行标记
docker tag ubuntu ben*/ubuntu:version1.0

# 也可以使用镜像的本地名称和tag进行标记
docker tag ubuntu:test ben*/ubuntu:version1.0.test

# 如果推送到私有仓库,则需要在目标仓库中明文标记主机名(默认推送的docker hub)
# 示例docker tag 0e5574283393 myregistryhost:5000/ben*/ubuntu:version1.0
# 以阿里云ACR服务为例
docker tag 0e5574283393 registry.cn-shenzhen.aliyuncs.com/ben*/ubuntu:version1.0

# 如果推送到私有仓库
docker tag 0e5574283393 localhost:5000/ubuntu:version1.0

完成仓库的关联后,直接通过docker push命令进行推送

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
--disable-content-trust :忽略镜像的校验,默认开启
# 请确定已经参考前文进行了账户信息的配置
$ docker push ben*/ubuntu:version1.0
The push refers to repository [docker.io/ben*/pancancer]
3c8d9fba298a: Pushed
f9a878ee0ce7: Pushed
58f7c9d6536a: Pushed
89df9bf0321e: Pushed
f925ccf73093: Pushed
f8b471c2b6cb: Pushed
89169d87dbe2: Mounted from library/centos
# 会基于镜像的层数,逐层进行推送,

至此,你的本地镜像就推送到了远程,就可以非常方便的进行共享了。

-------------本文结束感谢您的阅读-------------