Docker镜像发布到阿里云/私有库

一、本地镜像发布到阿里云

1.制作本地镜像

首先我们需要先将已经运行的容器,我们运行一个Ubuntu的镜像,并安装ifconfig工具,再commit

# docker run -it --name="u1" ubuntu bash
    # apt-get update
    # apt-get install net-tools

Docker镜像发布到阿里云/私有库_第1张图片Docker镜像发布到阿里云/私有库_第2张图片

Docker镜像发布到阿里云/私有库_第3张图片

 再进行commit

Docker镜像发布到阿里云/私有库_第4张图片

 2.创建阿里云公有库

登录阿里云,进入容器镜像服务>实例列表,选择命名空间,点击创建命名空间 

Docker镜像发布到阿里云/私有库_第5张图片

Docker镜像发布到阿里云/私有库_第6张图片

 创建命名空间完成

 再点到镜像仓库Docker镜像发布到阿里云/私有库_第7张图片

 选择我们刚才创建的命名空间,点击创建镜像仓库

Docker镜像发布到阿里云/私有库_第8张图片

 输入仓库名称和描述,选择公开,点击下一步Docker镜像发布到阿里云/私有库_第9张图片

 选择本地仓库,点击创建镜像仓库Docker镜像发布到阿里云/私有库_第10张图片

 创建完毕后,这里有非常详细的步骤教程,非常人性化!

Docker镜像发布到阿里云/私有库_第11张图片

3.将镜像推送到阿里云公有库

接下来我们根据提示将镜像推送到阿里云仓库

在登录时,他会要求你输入密码,所以要记好你的密码

Docker镜像发布到阿里云/私有库_第12张图片

 我们将whr/ubuntu推送到阿里云上Docker镜像发布到阿里云/私有库_第13张图片

 我们将原来的镜像删除,删除后重新在阿里云上拉取测试Docker镜像发布到阿里云/私有库_第14张图片

 在阿里云上拉取我们的镜像

Docker镜像发布到阿里云/私有库_第15张图片

 跑一下这个镜像可以进行ifconfig命令

二、本地镜像发布到私有库

1.docker registry

官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且即将被阿里云取代的趋势,不太主流。 Docker hub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。
Docker Registry是官方提供的工具,可以用于构建私有镜像仓库。

2.本地镜像推送私有仓库

①下载镜像Docker Registry

#docker pull registry

Docker镜像发布到阿里云/私有库_第16张图片

 ②运行私有库

docker run -d -p 5000:5000  -v /whr/myregistry/:/tmp/registry --privileged=true registry
默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调

Docker镜像发布到阿里云/私有库_第17张图片

 ③commit一个镜像

Docker镜像发布到阿里云/私有库_第18张图片

 ④查看私库里的镜像

curl -XGET http://本机IP:5000/v2/_catalog

显示为空,因为我们还没有推送镜像

 ⑤将镜像打包

将镜像打包成符合私有库规范的tag   # docker   tag   镜像:Tag   Host:Port/Repository:Tag

Docker镜像发布到阿里云/私有库_第19张图片

 ⑥修改配置文件

修改docker的配置文件,使其支持http

# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://xb2s49ki.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.43.184:5000"]
}

 docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。修改完配置文件后,重启docker,重启docker后容器就关了,重新启动即可

⑦推送到私有库

 # docker push 192.168.43.184:5000/whr/ubuntu:1.0

 ⑧验证私有库

查看私有库上是否有镜像

# curl -XGET http://192.168.43.184:5000/v2/_catalog
可以看到,私有库上已经有了我们创建的镜像

 ⑨验证

将原有的镜像删除后再从私有库上下载

Docker镜像发布到阿里云/私有库_第20张图片

 已经将镜像删除,我们再进行拉取

Docker镜像发布到阿里云/私有库_第21张图片

 完成拉取,跑一下镜像,可以正常运行。

你可能感兴趣的:(docker,linux)