前言
搭建私有Docker镜像仓库学习笔记
搭建没有GUI界面的仓库
1
| docker run --name registry --restart=always -p 5000:5000 -d -v registry-data:/var/lib/registry registry
|
搭建有GUI界面的仓库
- 通过Docker官方提供的镜像以及第三方开发者开发的GUI界面组合,实现带GUI界面的仓库搭建
docker-compose.yml1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| version: "3.0"
services: registry: image: registry volumes: - ./registary-data:/var/lib/registry ui: image: joxit/docker-registry-ui:static ports: - 8080:80 environment: - REGISTRY_TITLE=私有仓库标题 - REGISTRY_URL=http://registry:5000 depends_on: - registry
|
配置Docker的信任地址
- 配置从UI容器访问仓库容器的信任地址,访问仓库地址时,默认Docker只信任https,如果没有https,需要配置http
insecure-registries
:配置仓库容器的IP地址和端口号(实际上就是宿主机的IP地址,端口号默认为5000)
/etc/docker/daemon.json1 2 3 4
| { "registry-mirrors": ["https://n0dwemtq.mirror.aliyuncs.com"], "insecure-registries": ["http://xx.xx.xx.xx:5000"] }
|
1 2
| systemctl daemon-reload systemctl restart docker
|
从本机推送镜像到仓库
重新标记tag
- 发起推送之前要先通过
docker tag
命令,将镜像重新标记tag,必须将推送的仓库地址作为前缀
<name_local>:<version_local>
:本机上镜像的名称和标签
<ip_ui>:<port_ui>
:如果搭建的是有GUI的仓库,那么需要指定UI容器的IP地址和端口
<name_remote>:<version_remote>
:发送到仓库时镜像的名称和标签,可以与本机上镜像的名称和标签相同
1
| docker tag <name_local>:<version_local> <ip_ui>:<port_ui>/<name_remote>:<version_remote>
|
发起推送
1
| docker push <ip_ui>:<port_ui>/<name_remote>:<version_remote>
|
从仓库拉取镜像到本机
1
| docker pull <ip_ui>:<port_ui>/<name_remote>:<version_remote>
|
完成
参考文献
哔哩哔哩——黑马程序员