美文网首页
自建Docker Hub仓库与使用

自建Docker Hub仓库与使用

作者: 逸省 | 来源:发表于2020-05-12 14:42 被阅读0次

构建Docker Hub仓库

Docker官方提供了registry镜像,该镜像可以很方便的帮助我们创建Docker Hub,使用如下命令即可。

docker run -d -p 5000:5000 --restart=always --name registry registry

默认情况下,仓库会保存在容器的/var/lib/registry目录下。为了更方便的备份和移动仓库,我们希望仓库保存在本地路径下,一次在上述命令中添加-v参数。如

docker run -d \
    -p 5000:5000 \
    -v /opt/data/registry:/var/lib/registry \
    registry

上传镜像到仓库

  • 标记本地镜像

将本地已生成的镜像使用docker tag打上标签,标签格式为:

[REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]

例如本地image如下

REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
sample                     latest              394cbb1d54f5        26 seconds ago      407MB

那么标记sample镜像的命令如下

docker tag sample:latest www.****.com:5000/sample:latest

www.****.com为域名,如果没有可用IP地址代替。

  • 上传标记镜像

使用push命令上传标记的镜像到仓库。

docker push www.****.com:5000/sample:latest
  • 检查上传结果
    使用curl可以查看仓库中的镜像,命令如下
curl www.****.com:5000/v2/_catalog

仓库的使用

  • docker命令

image前面加上自建仓库的地址即可,如

docker pull www.****.com:5000/sample:latest
  • docker compose 和Dockerfile使用

compose 中image字段同命令一样添加地址,如

image: www.****.com:5000/sample:latest

Dockerfile也类似,如

FROM www.****.com:5000/sample:latest

拾遗

  1. 上例中www.****.com为域名,需根据实际情况修改
  2. 服务如是国内云服务商提供,域名需备案
  3. 使用域名上传下载镜像默认使用SSL验证,可在daemon.json文件中添加insecure-registries字段取消,如
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com"
  ],
   "insecure-registries": [
        "www.****.com:5000"
    ],
}

相关文章

网友评论

      本文标题:自建Docker Hub仓库与使用

      本文链接:https://www.haomeiwen.com/subject/ilpbnhtx.html