学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出)
我们可以把自己的镜像文件存放到阿里云,也可以存到自己的私服。
阿里云容器服务
登录阿里云—>搜索容器镜像服务—>创建个人实例–>进入个人实例
下面的命令都可以在创建的仓库信息中 《3.将镜像推送到Registry》中找到
登录(连接到阿里云仓库)
提交(类似于git的commit)
推送(类似于git的push)
下面的命令都可以在创建的仓库信息中 《2.从Registry中拉取镜像》中找到
个人版只是让我们学习时候知道基本使用,决不能用于商业。过需求或者有¥可以购买企业版使用更多功能。
官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。
Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。
Docker Registry是官方提供的工具,可以用于构建私有镜像仓库
docker pull registry
这里先照着写,会用。命令可能会显得比较复杂,《六、Docker容器数据卷》中会写具体内容。
docker run -d -p 5000:5000 -v /zwcoder/myregistry/:/tmp/registry --privileged=true registry
默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调。
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名] #在容器外执行!
docker commit -m="vim cmd add" -a="zwcoder" a69d7c825c4f zzyyubuntu:1.2
默认情况下,新创建的私服是空的。
curl -XGET http://192.168.174.128:5000/v2/_catalog
这个新镜像就是刚刚运行的容器实例对应的镜像复制了一份。
docker tag 镜像:Tag Host:Port/Repository:Tag
使用命令docker tag
将zwcoderubuntu:1.0
这个镜像修改为192.168.174.128:5000/zwcoerubuntu:1.0
。用自己的ip!!!
docker tag zwcoderubuntu:1.2 192.168.174.128:5000/zwcoderubuntu:1.2
接下来就要将新的镜像推送到私有库了,但是docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。先进行修改配置文件/etc/docker/daemon.jdon
。
vim /etc/docker/daemon.json
添加:"insecure-registries": ["192.168.174.128:5000"]
,保存退出。
{
"registry-mirrors": ["https://qzqjduzw.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.174.128:5000"]
}
重启docker(新版本说不用重启就能生效,但是推荐还是重启一下),重新运行docker registry
docker run -d -p 5000:5000 -v /zwcoder/myregistry/:/tmp/registry --privileged=true registry
docker push 192.168.174.128:5000/zwcoderubuntu:1.0
再次查看私有库:
可能在后面私有库内容里面命令都没有说明,将会在后面的容器数据卷中写到。