Docker配置Registry私服
配置ip
如果不想使用127.0.0.1:5000作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。就得把例如 192.168.199.100:5000 这样的内网地址作为私有仓库地址,这时会发现无法成功推送镜像。
这是因为 Docker 默认不允许非HTTPS方式推送镜像。可以通过Docker的配置选项来取消这个限制。
对于使用systemd
的系统,在/etc/docker/daemon.json
中写入如下内容(如果文件不存在请新建该文件)
对于Docker for Windows 、 Docker for Mac在设置中编辑 daemon.json增加和下边一样的字符串即可。
{
"registry-mirrors" : [
"https://dockerhub.azk8s.cn"
],
"insecure-registries": [
"192.168.0.107:5000"
],
"debug" : true,
"experimental" : false
}
之后重启服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
docker-compose安装Registry及UI界面
docker-compose.yml配置文件:
registry:
image: registry
restart: always
container_name: registry
ports:
- 5000:5000
volumes:
- /Users/xiaoming/registry/registry-data:/var/lib/registry
fronted:
image: konradkleine/docker-registry-frontend:v2
ports:
- 8080:80
volumes:
- /Users/xiaoming/registry/frontend.crt:/etc/apache2/server.crt:ro
- /Users/xiaoming/registry/frontend.key:/etc/apache2/server.key:ro
environment:
- ENV_DOCKER_REGISTRY_HOST=192.168.0.107
- ENV_DOCKER_REGISTRY_PORT=5000
之后运行,访问相应的ip即可
上传自定义镜像
首先标记一个镜像,格式如下:
docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
之后使用docker push
就可以将指定tag的镜像推送到私服上。