一、前言
Docker官方镜像仓库 访问速度很慢,Docker Registry允许搭建我们自己的镜像仓库,为实现镜像拉取、推送提供便利。
二、安装与启动
1、创建目录
mkdir /usr/local/docker
cd /usr/local/docker
2、编辑docker-compose.yml
version: "3.7"
services:
registry:
restart: always
image: registry
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry-data:/var/lib/registry
- image : 容器依据的镜像为registry
- container_name : 容器名称
- ports : 端口映射
- volumes : 映射数据卷
3、启动容器
docker-compose up -d
三、验证是否启动成功
浏览器访问 http://<host address>:5000/v2/
,正常情况会返回空的json对象。
四、Registry测试使用
1、先从官方镜像拉取ubuntu
docker pull ubuntu
2、为镜像打上tag,创建自己的镜像
docker tag ubuntu 192.168.172.143:5000/ubuntu
命名方式:ip:port/image_name:version
表示一会推送到镜像服务器时,使用这个ip、端口配置
3、查看刚才的镜像
docker images
4、配置镜像服务器地址
vi /etc/docker/daemon.json
内容如下:
{
"registry-mirrors": [
"<your acccelerate address>"
],
"insecure-registries": [
"192.168.172.143:5000"
]
}
重启服务:
service docker restart
第一个为阿里云容器镜像加速地址,第二个为新增的自己的镜像服务器地址。
5、验证配置
docker info
看Insecure Registries
节点是否多了一个配置。
6、推送镜像
docker push 192.168.172.143:5000/ubuntu
7、查看镜像
浏览器查看: http://192.168.172.143:5000/v2/_catalog
或
终端访问: curl -XGET http://192.168.172.143:5000/v2/_catalog
8、拉取镜像
先删除本地镜像
docker rmi ubuntu 192.168.172.143:5000/ubuntu
拉取
docker pull 192.168.172.143:5000/ubuntu
五、Registry图形界面
docker registry本身不提供图形界面,为方便操作,需要安装第三方的图形界面 :Docker-Registry-Frontend
1、安装
修改docker-compose.yml
version: "3.7"
services:
registry:
restart: always
image: registry
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry-data:/var/lib/registry
registry-ui:
restart: always
image: konradkleine/docker-registry-frontend:v2
container_name: registry-ui
environment:
ENV_DOCKER_REGISTRY_HOST: 192.168.172.143
ENV_DOCKER_REGISTRY_PORT: 5000
ports:
- 8080:80
volumes:
- /usr/local/docker/registry/server.crt:/etc/apache2/server.crt:ro
- /usr/local/docker/registry-ui/server.key:/etc/apache2/server.key:ro
删除已经存在的容器
docker rm $(docker ps -aq)
- ENV_DOCKER_REGISTRY_HOST : 镜像服务器地址
- ENV_DOCKER_REGISTRY_PORT : 镜像服务器端口
2、重新启动
docker-compose up -d
3、访问
浏览器访问:http://192.168.172.143:8080/
即可
4、测试
推送
docker push 192.168.172.143:5000/ubuntu
修改tag再次推送
docker tag 192.168.172.143:5000/ubuntu 192.168.172.143:5000/ubuntu:8.0.0
docker push 192.168.172.143:5000/ubuntu:8.0.0
访问: http://192.168.172.143:8080/
可以看到两个版本的ubuntu.