7.1 私有仓库搭建与配置

公有仓库存储的都是公用镜像,jdk8啊,tomcat、mysql等等,私有仓库存放我们开发的应用,为了能在一个局域网共享这些镜像。

(1)拉取私有仓库镜像(如果有registry镜像,此步省略)

docker私有仓库本身就是一个镜像,先pull下来

docker pull registry

docker 私有仓库 No such image docker 私有仓库爆破_docker

(2)根据镜像创建容器

docker run -di --name=registry -p 5000:5000 registry(镜像名)

把容器的5000端口映射成宿主机的5000端口。完成这步私有仓库就构建好了

docker 私有仓库 No such image docker 私有仓库爆破_docker_02

(3)打开浏览器 输入地址http://服务器ip地址:5000/v2/_catalog看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空

docker 私有仓库 No such image docker 私有仓库爆破_上传_03

(4)修改daemon.json

这一步是让docker信任这个私有仓库的地址,这样才能把docker本地的镜像上传到私有仓库。

添加配置

vi /etc/docker/daemon.json

先设置下镜像源,提高下载速度

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

然后添加以下内容,保存退出。

{
"insecure-registries":["你的ip地址:5000"]
}

如果要写多个私服,在中括号中添加即可。

注意这里时json,键值对,逗号隔开,不写逗号重启不了docker!

docker 私有仓库 No such image docker 私有仓库爆破_上传_04

(5)重启docker 服务生效

systemctl restart docker

此时发现启动失败!!!

查看资料得知:如果是配置了国内镜像,并且镜像文件为/etc/docker/daemon.json,则修改文件后缀为.conf即可正常启动docker 服务

修改文件名

mv /etc/docker/daemon.json /etc/docker/daemon.conf

之后就能正常启动了

docker 私有仓库 No such image docker 私有仓库爆破_私有仓库_05

7.2 镜像上传至私有仓库

(1)标记此镜像为私有仓库的镜像

用tag对要上传到私有仓库的镜像打个标签

docker tag 【要打标签的镜像】 【指定私服地址/镜像名】(这样写在私服中就是你的镜像名)
docker tag ascdc/jdk8 你的ip:5000/原镜像名

然后docker images一下会发现多了个镜像你的ip:5000/原镜像名,他其实就是原镜像的引用,为了上传镜像做准备。

如果此时直接docker push 你的ip:5000/原镜像名可能不行,因为刚才重启了docker服务,你这个registry容器是关闭的(开启的当我没说),所以要再次启动

docker 私有仓库 No such image docker 私有仓库爆破_上传_06

(2)再次启动私服容器

docker start registry

docker 私有仓库 No such image docker 私有仓库爆破_上传_07


(3)上传标记的镜像

docker push 你的ip:5000/原镜像名 (这样写在私服中就是你的镜像名)

docker 私有仓库 No such image docker 私有仓库爆破_私有仓库_08