前言
如同使用 Gitlab 那样自建仓库一样,在 Docker 当中也支持自建仓库,使用的镜像为 registry。
自建仓库
-
拉取 registry 镜像
Shell > docker pull registry:latest -
创建镜像需要的挂载目录
Shell > mkdir -p /dokcer/data/registry/ -
使用镜像生产容器实例
# "\" 表示命令还没有结束 Shell > docker run -d -p 5000:5000 --name="docker_registry" --restart always \ -v /docker/data/registry/:/var/lib/registry resistry:latest选项说明:
-d- 以守护进程即后台运行的方式运行这个容器实例-p 5000:5000- 端口映射,冒号左边为宿主机的端口,冒号右边为容器实例的端口--name="docker_registry"- 定义这个容器实例的名称--restart always- 宿主机重启时,当前容器实例也会自启动-v /docker/data/registry:/var/lib/registry- 目录映射,即容器数据卷。冒号左边为宿主机的目录,冒号右边为容器实例的目录
-
查看启动的容器实例
Shell > docker ps -
编辑 daemon.json 文件
默认情况下,Docker 只支持 https 的地址,因此,需要更改 /etc/docker/daemon.json 这个文件,追加的内容为:
{ "insecure-registries": ["192.168.100.20:5000"] }
测试自建仓库
# 拉取 fedora 操作系统的镜像
Shell > docker pull fedora:latest
# 利用镜像生成容器
Shell > docker run -it --name="my_fedora" fedora:latest /bin/bash
[root@476c90b224c7 /]# dnf -y install vim mtr lrzsz
ctrl + p + q
Shell > docker ps
Shell > docker commit -m "add new packages" -a "jack" my_fedora jack/fedora-mod:1.0
shell > docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jack/fedora-mod 1.0 e2f0f4cbe4f4 5 seconds ago 324MB
fedora latest ad119a981382 2 days ago 184MB
registry latest 53c26cd62311 3 weeks ago 62.4MB
# 重启 docker 守护进程
## 由于 docker_registry 这个容器实例使用了 `--restart always`,因此重启守护进程之后,该实例也会自动重启
Shell > docker stop my_fedora docker_registry && systemctl restart docker.service
# 为定制镜像指定别名标签
Shell > docker tag jack/fedora-mod:1.0 192.168.100.20:5000/fedora-mod:1.0
Shell > docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jack/fedora-mod 1.0 e2f0f4cbe4f4 7 minutes ago 324MB
192.168.100.20:5000/fedora-mod 1.0 e2f0f4cbe4f4 7 minutes ago 324MB
fedora latest ad119a981382 2 days ago 184MB
registry latest 53c26cd62311 3 weeks ago 62.4MB
# 推送定制镜像
Shell > docker push 192.168.100.20:5000/fedora-mod:1.0
The push refers to repository [192.168.100.20:5000/fedora-mod]
cb5fd98a765e: Pushed
81fff2cd9f84: Pushed
1.0: digest: sha256:ea06148a4bed5ae0dda92fcdb6d2abf21598b7364efa85d3106e14a1bbb2371c size: 741
# 查看自建仓库的所有镜像
Shell > curl -X GET http://192.168.100.20:5000/v2/_catalog
{"repositories":["fedora-mod"]}
# 查看指定镜像的版本号标签
Shell > curl -X GET http://192.168.100.20:5000/v2/fedora-mod/tags/list
{"name":"fedora-mod","tags":["1.0"]}
其他使用者拉取定制镜像
Shell > docker pull 192.168.100.20:5000/fedora-mod:1.0
版权声明:「自由转载-保持署名-非商业性使用-禁止演绎 3.0 国际」(CC BY-NC-ND 3.0)
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论










