我们在使用Docker时 下载镜像一般都是在外网下载并使用。可是当我们没有外网时我们不得不自己搭建私有仓库。
先看下流程图:
Docker  私有仓库搭建

下面我们开始搭建 私有仓库
1、安装docker,并设置为开机自启
yum install docker -y
systemctl start docker
systemctl enable docker

2、下载registry 镜像并且run起来
下载镜像
[root@docker ~]# docker pull registry
Using default tag: latest
Trying to pull repository docker.io/library/registry ...
latest: Pulling from docker.io/library/registry
Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54
Status: Downloaded newer image for docker.io/registry:latest
查看下载的镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-repo.example.com:5000/hello-world-v1 latest e38bc07ac18e 2 months ago 1.85 kB
docker.io/hello-world latest e38bc07ac18e 2 months ago 1.85 kB
registry.erick.com 5000 e38bc07ac18e 2 months ago 1.85 kB
docker-repo.example.com:5000/registry v1 d1fd7d86a825 5 months ago 33.3 MB
docker.io/registry latest d1fd7d86a825 5 months ago 33.3 MB

通过刚刚下载的镜像Run起来一个容器,并挂载目录

[root@docker ~]# docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2 ##把宿主机的5000端口映射给docker 的5000端口。
查看此时刚刚创建的容器
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f22a2d1b8abe registry:2 "/entrypoint.sh /e..." 2 minutes ago Up 2 minutes 0.0.0.0:5000->5000/tcp xenodochial_borg
进入容器我们查看容器的目录
[root@docker ~]# docker exec -u root -it f22a2d1b8abe sh

Docker  私有仓库搭建
查看本地宿主机的 挂载文件系统

2、在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:
{
"insecure-registries": [
"docker.erick.com:5000"
]
}
如果有多个私有仓库,则用“,”隔开,例如:
{
"insecure-registries": [
"docker.erick.com:5000",
"docker.erick.com1:5000"
]
}
重新启动docker 服务
systemctl restart docker
修改/etc/hosts 能够 解析到 docker.erick.com
192.168.1.39 docker.erick.com
3、开始把镜像导入到私有仓库
查看此时存在的docker 镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest e38bc07ac18e 2 months ago 1.85 kB
docker.io/registry 2 d1fd7d86a825 5 months ago 33.3 MB
docker.io/registry latest d1fd7d86a825 5 months ago 33.3 MB
[root@docker ~]#
为docker.io/hello-world 镜像更名为docker.erick.com:5000/hello-world
Docker  私有仓库搭建
把刚刚更改好名字的镜像上传至私有镜像
Docker  私有仓库搭建

可以看到我们已经把镜像上传到了 我们自己搭建的私有镜像仓库。我们看下存放仓库的位置
先查看宿主机:
Docker  私有仓库搭建
在查看容器:
Docker  私有仓库搭建

docker容器实际上是挂载到宿主机的一个目录!