搭建自己的 Docker 私有仓库服务

关于 Docker 的介绍这里就省了,Docker 在其相关领域的火爆程度不亚于今年汽车行业里的特斯拉,docCloud 甚至把公司名都改成了 Docker, Inc. 好东西总是传播很快,我们现在已经有客户在 VPS 上用 Docker 来部署应用了。不了解 Docker 的小伙伴们可以看看 使用 Docker/LXC 迅速启动一个桌面系统 开头部分的介绍。

和初次接触 Xen/KVM 虚拟技术的体验不同,Docker 不用自己动手制作镜像,官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了。如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库(Private Repositories)来放我们自己的镜像,Docker-Registry 正是我们需要的工具。

用 git 下载源码后修改配置文件 config.yml,把 storage_path 部分改成 Docker 镜像仓库的存放地点:

$ git clone https://github.com/dotcloud/docker-registry
$ cd docker-registry

$ cp config_sample.yml config.yml
$ vi config.yml
...
# This is the default configuration when no flavor is specified
dev:
    storage: local
    storage_path: /home/vpsee/registry
    loglevel: debug
...

$ mkdir /home/vpsee/registry

安装一些必要软件包和一些 Docker-Registry 需要用到的 Python 工具和库:

$ sudo apt-get install build-essential python-dev libevent-dev python-pip libssl-dev

$ sudo pip install -r requirements.txt

Docker-Registry 实际上是个基于 Flask 的 web app,安装成功后就可以这样运行了:

$ sudo gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:80 -w 1 wsgi:application

打开浏览器,访问 IP 地址就可以看到 docker-registry 私有仓库在运行了:

Docker-Registry

查看一下现有系统上已经有了哪些镜像:

$ sudo docker images
REPOSITORY      TAG        ID              CREATED         SIZE
vpsee/ubuntu    latest     936a54e8a345    2 weeks ago     12.29 kB (virtual 327.8 MB)
ubuntu          latest     8dbd9e392a96    6 months ago    131.5 MB (virtual 131.5 MB)
ubuntu          precise    8dbd9e392a96    6 months ago    131.5 MB (virtual 131.5 MB)
ubuntu          quantal    b750fe79269d    7 months ago    24.65 kB (virtual 180.1 MB)

我们打算把 vpsee/ubuntu 这个镜像(ID 是 936a54e8a345)上传(push)到我们刚创建的私有仓库里(这个私有仓库的 IP 地址是 192.168.2.45),会看到提示 Username/Password,初次 push 的话,可以自己设置用户名和密码:

$ sudo docker tag 936a54e8a345 192.168.2.45/vpsee
$ sudo docker push 192.168.2.45/vpsee
Username: vpsee
Password:
Email: docker@vpsee.com
Account created. Please use the confirmation link we sent to your e-mail to activate it.
The push refers to a repository [192.168.2.45/vpsee] (len: 1)
Processing checksums
Sending image list
Pushing repository 192.168.2.45/vpsee (1 tags)
Pushing 8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c
Buffering to disk 58266504/? (n/a)
Pushing 58.27 MB/58.27 MB (100%)

完成 push 后,我们的私有仓库就有了第一个镜像了:

$ sudo docker images
REPOSITORY          TAG      ID             CREATED        SIZE
vpsee/ubuntu        latest   936a54e8a345   2 weeks ago    12.29 kB (virtual 327.8 MB)
ubuntu              latest   8dbd9e392a96   6 months ago   131.5 MB (virtual 131.5 MB)
ubuntu              precise  8dbd9e392a96   6 months ago   131.5 MB (virtual 131.5 MB)
ubuntu              quantal  b750fe79269d   7 months ago   24.65 kB (virtual 180.1 MB)
192.168.2.45/vpsee  latest   936a54e8a345   2 weeks ago    12.29 kB (virtual 327.8 MB)

以后只要 docker pull 192.168.2.45/vpsee 就可以从我们自己的私有仓库下载和运行镜像了,本地网络速度当然会快很多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建一个Docker私有仓库,你可以按照以下步骤进行操作: 1. 安装Docker:确保你的服务器上已经安装了Docker。你可以根据你的操作系统和版本在Docker官方网站上找到相应的安装指南。 2. 创建一个存储库文件夹:在服务器上选择一个适当的位置,创建一个用于存储镜像和相关数据的文件夹。 3. 启动私有仓库容器:使用以下命令启动一个私有仓库容器,并将存储库文件夹挂载到容器中: ``` docker run -d -p 5000:5000 --restart=always --name registry -v /path/to/repository:/var/lib/registry registry:2 ``` 这将在端口5000上启动一个私有仓库,并将容器命名为"registry"。请将"/path/to/repository"替换为你在第2步中创建的存储库文件夹的路径。 4. 配置Docker客户端:在需要访问私有仓库的机器上,配置Docker客户端以允许访问私有仓库。编辑或创建`/etc/docker/daemon.json`文件,并添加以下内容: ``` { "insecure-registries" : ["your-server-ip:5000"] } ``` 将"your-server-ip"替换为你运行私有仓库服务器的IP地址。 5. 重启Docker服务:重启Docker服务以使配置生效。根据你的操作系统,使用适当的命令重启Docker服务。 6. 测试私有仓库:现在你应该能够使用`docker push`和`docker pull`命令来推送和拉取镜像到你的私有仓库了。例如: ``` docker pull ubuntu docker tag ubuntu your-server-ip:5000/ubuntu docker push your-server-ip:5000/ubuntu ``` 这些命令将下载官方的Ubuntu镜像,然后将其标记为你的私有仓库地址,并将其推送到私有仓库中。 现在,你已经成功搭建了一个Docker私有仓库,可以在你的机器上使用它了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值