Docker: 上传镜像至私有仓库

栏目: 编程工具 · 发布时间: 5年前

内容简介:镜像可以很方便直接 push 到 docker 的公共仓库,就好像 github 一样,但是我们在开发中很多时候都不想公开镜像文件,这时就需要搭建 docker 的私有仓库,就好像 gitlab 一样。在上一篇 构建出镜像后,我们可以部署一个私有镜像仓库用来存放我们的镜像。启动一个私有仓库也非常简单,在服务器上执行命令

镜像可以很方便直接 push 到 docker 的公共仓库,就好像 github 一样,但是我们在开发中很多时候都不想公开镜像文件,这时就需要搭建 docker 的私有仓库,就好像 gitlab 一样。

在上一篇 构建出镜像后,我们可以部署一个私有镜像仓库用来存放我们的镜像。

启动私有 Registry

启动一个私有仓库也非常简单,在服务器上执行命令

docker run -d -p 5000:5000 --name="docker-registry" --restart=always -v /root/docker/registry/:/var/lib/registry/ registry

即后台启动 registry 镜像构建出来的容器,并命名为 docker-registry ,端口号映射为 50005000

--restart=always 代表当容器因为某些原因停止时,不管退出码是什么都自动重启。除了 always 还有 on-failure 代表只有退出码不为 0 时才重启,并且接受重启次数参数: --restart=on-failture:5

-v 指定将宿主机的 /root/docker/registry/ 目录挂载到容器的 /var/lib/registry/ 目录。这样我们不用进入容器,在宿主机上就能访问到容器内我们感兴趣的目录了。

为什么是 /var/lib/registry/ 目录?

仓库默认存放镜像等信息在容器的 /var/lib/registry/docker 目录下,可以进入该目录查看已上传镜像信息。

Docker: 上传镜像至私有仓库

执行 run 命令成功后使用 docker ps 能看到 registry 服务已经启动:

Docker: 上传镜像至私有仓库

上传镜像

要上传镜像到私有仓库,需要在镜像的 tag 上加入仓库地址:

docker tag express-app 111.111.111.111:5000/sunhengzhe/express-app:v1

为了不与其他镜像冲突,可以加入命名空间如 sunhengzhe ,另外最好给镜像打上 tag 如 v1

注意仓库地址没有加协议部分,docker 默认的安全策略需要仓库是支持 https 的,如果服务器只能使用 http 传输,那么直接上传会失败,需要在 docker 客户端的配置文件中进行声明。

mac 配置

Docker: 上传镜像至私有仓库

Docker: 上传镜像至私有仓库

更改完需要 Apply & Restart

centos 系统

/etc/docker/daemon.json 文件中写入:

{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "[私有仓库 ip:port]"
  ]
}

然后重启 docker

systemctl restart docker

推送镜像

打完 tag 后使用 push 命令推送即可:

docker push 111.111.111.111:5000/sunhengzhe/express-app

Docker: 上传镜像至私有仓库

推送失败

如果出现 Retrying in 5 seconds 然后上传失败的问题。可以首先在服务器上使用 logs 命令查看日志:

docker logs -f docker-registry

-f 代表持续输出文件内容。

如果出现 filesystem: mkdir /var/lib/registry/docker: permission denied ,可能是 一个 selinux 问题 ,需要在服务器上对挂载目录进行处理:

chcon -Rt svirt_sandbox_file_t /root/docker/registry/

此示例中即 /root/docker/registry/

Docker: 上传镜像至私有仓库

拉取镜像

使用 pull 命令即可

docker pull 111.111.111.111:5000/sunhengzhe/express-app

以上所述就是小编给大家介绍的《Docker: 上传镜像至私有仓库》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解SPARK

深入理解SPARK

耿嘉安 / 机械工业出版社 / 2016-1-1 / 99

《深入理解SPARK:核心思想与源码分析》结合大量图和示例,对Spark的架构、部署模式和工作模块的设计理念、实现源码与使用技巧进行了深入的剖析与解读。 《深入理解SPARK:核心思想与源码分析》一书对Spark1.2.0版本的源代码进行了全面而深入的分析,旨在为Spark的优化、定制和扩展提供原理性的指导。阿里巴巴集团专家鼎力推荐、阿里巴巴资深Java开发和大数据专家撰写。 本书分为......一起来看看 《深入理解SPARK》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器