利用 docker/distribution 搭建私有的 Docker 仓库

本贴最后更新于 2238 天前,其中的信息可能已经天翻地覆

利用 Docker 部署项目到线上是一件便利的事情,但是 public 的项目无疑会带来诸多不便,private 帐号的费用又相对较高,所以利用自己已有的服务器资源来搭建一个 Docker 私服便是一件蛮有必要的事情。

前言

步骤很简单,准备一台 CentOS7 64 位的服务器,安装 Docker,安装 distribution(我们也称之为 Registry2.0,Registry1.0 版本的项目已经被官方弃用,ps:1.0 用的 python 语言,2.0 用的 Go 语言,某种程度上表现出 Go 语言的优秀...)。

然后再结合一下案例测试发布。

先上案例代码:simple-docker-demo

安装

登陆 CentOS,执行以下命令:

yum install docker

systemctl start docker

docker run hello-world

如果能够看到 docker 的 hello 信息,那么说明 docker 已经在运行了,接下来便是安装 distribution,步骤很简单,一条命令搞定:

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

然后这里请记录一下端口 5000,因为以后就是用这个端口来推拉 Docker 镜像。

发布

接下来测试案例的发布到私服

接下来的操作分两种场景,第一种在我们的本地 Mac,第二种是在 CentOS 服务器上的操作。

首先是在本地进行操作:

  • 获取 simple-docker-demo 的代码

  • 进入 docker-webc 目录

  • 执行命令:

      docker build -t liumapp/docker-webc:v1.0.0 .
    
  • 修改 tag,请注意,这里的 your server ip 为 CentOS 服务器的 IP 地址:

      docker tag liumapp/docker-webc:v1.0.0 ${your server ip}:5000/liumapp/docker-webc:v1.0.0
    
  • 配置 Mac 的 docker,及配置 daemon.js(Mac 上可能需要在客户端的 preferences 下的 daemon 进行配置),添加:

      "insecure-registries" : [
        "${your-server-ip}:5000"
      ],
    
  • push

      docker push ${your server ip}:5000/liumapp/docker-webc:v1.0.0
    

push 成功之后能够看到以下信息:

3.pic_hd.jpg

我们可以复制这段 sha 字符串,然后在服务器上使用 find 命令查找,结果如下:

4.pic_hd.jpg

到此,Docker 私服配置成功。

如果您觉得我的博客对您有帮助,欢迎关注我的 Github 帐号:liumapp

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...