Docker Hub 是 Docker 官方提供的一个管理公共镜像的镜像仓库,咱们能够从上面拉取咱们想要的镜像,也能够推送本身的镜像上去。但有时候,在没法访问互联网的状况下或者不但愿将本身的镜像推送到公网上时,那么 Docker Registry (镜像私服)就能够用来存储管理本身的镜像。linux
建立 docker-compose.yml
docker
version: '3.1'
services:
registry:
image: registry
restart: always
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry复制代码
启动 docker composeapache
$ docker-compose up -d复制代码
访问:http://{ip}:5000/v2/json
Docker Registry
安装成功以后,不太方便只管地查看仓库中的镜像,能够使用 Web UI
界面工具管理镜像,docker-registry-frontend
就是其中之一tomcat
建立 docker-compose.yml
frontend
version: '3.1'
services:
frontend:
image: konradkleine/docker-registry-frontend:v2
ports:
- 8080:80
volumes:
- ./certs/frontend.crt:/etc/apache2/server.crt:ro
- ./certs/frontend.key:/etc/apache2/server.key:ro
environment:
- ENV_DOCKER_REGISTRY_HOST={docker registy ip}
- ENV_DOCKER_REGISTRY_PORT={docker registy port}复制代码
上述文件须要自定义修改的配置工具
ENV_DOCKER_REGISTRY_HOST
:安装的 Docker Registry 访问 IPENV_DOCKER_REGISTRY_PORT
:安装的 Docker Registry 访问端口启动 Docker Ccompose测试
$ docker-compose up -d复制代码
访问 http://{ip}:8080](http://{ip}:8080ui
编辑 daemon.json
(若是不存在则新建)spa
$ vi /etc/docker/daemon.json复制代码
完整文件以下:
{
"registry-mirrors": [
"{镜像加速器地址}"
],
"insecure-registries": [
"{docker registry ip}:5000"
]
}复制代码
重启服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker复制代码
检查配置是否生效
$ docker info复制代码
出现如下内容,说明配置成功
Insecure Registries:
{docker registry ip}:5000
127.0.0.0/8复制代码
从 Docker Hub 公网拉取一个镜像
$ docker pull tomcat复制代码
标记该镜像指向Docker Registry 私服仓库
$ docker tag tomcat {docker registry ip}:5000/tomcat复制代码
推送镜像到仓库
$ docker push {docker registry ip}:5000/tomcat复制代码
删除从 Docker Hub 公网上拉取的镜像
$ docker image rm {docker registry ip}:5000/tomcat复制代码
从 Docker Registry 私服中拉取镜像
$ docker pull {docker registry ip}:5000/tomcat复制代码
END