启动私有Docker镜像服务器(Registry)
在部署 registry 之前需要现在主机上安装 Docker。registry 实际上就是运行在 Docker 中的 registry 镜像的实例。为了在本地保存自定义的Docker镜像,往往需要在本地启动一个私有Docker镜像服务器-Registry Server。而不是每次都从docker.io拉取镜像。
docker run -d -p 5000:5000 --restart=always --name registry registry
向私有registry提交镜像
可以从 Docker Hub 中提取镜像并将其推送到你的本地registry。以下示例从 Docker Hub 中取出 ubuntu:16.04 镜像,并将其重新标记为 my-ubuntu,然后将其放入本地 registry。最后,删除本地的 ubuntu:16.04 和 my-ubuntu 镜像,并从本地 registry 中取出 my-ubuntu 镜像。
# 从 Docker Hub 中取出 ubuntu:16.04 镜像
docker pull ubuntu:16.04
# 为镜像添加标签 localhost:5000/my-ubuntu。这会会已经存在的镜像创建附加标签。标签第一部分是主机名和端口号,执行 push 操作时 Docker 将其解析为 registry 的位置。
docker tag ubuntu:16.04 localhost:5000/my-ubuntu
# 上传镜像到运行在 localhost:5000 的本地 registry
docker push localhost:5000/my-ubuntu
# 删除本地缓存中的 ubuntu:16.04 和 my-ubuntu 镜像
docker image rm ubuntu:16.04
docker image rm localhost:5000/my-ubuntu
# 从你的本地 registry 中获取 localhost:5000/my-ubuntu 镜像
docker pull localhost:5000/my-ubuntu
Docker本地化配置
{
"registry-mirrors": [
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
],
"insecure-registries": ["192.168.xxx.xxx:5000"]
}
需要注意,有两个docker配置文件都需要修改,分别对应于root用户和非root用户
/etc/docker/daemon.json
~/.config/docker/daemon.json