在ubuntu14.04上构建docker私有镜像库

来源:互联网 发布:最反感的网络词 编辑:程序博客网 时间:2024/04/28 21:13

构建docker私有镜像库

环境准备

Docker私有镜像库,分为服务端和客户端。服务端和客户端都要有docker环境。除此之外,服务端运行registry容器,完成镜像库的功能。客户端通过docekr pull、push等命令与服务端交互。环境说明如下表:

对象 版本 IP 备注 服务端 Ubuntu 14.04 192.168.142.128 在此主机上搭建镜像库 客户端 Ubuntu 14.04 192.168.142.131 在此主机上测试是否能通过http协议拉取镜像服务器里的镜像。 Docker引擎 1.6.2以上 无 Registry镜像 2.0以上 无 可以从云盘中获取registry的镜像包。 Skylar_beanstalkd镜像包 Latest 无 可以从云盘中获取skylar_beanstalkd的镜像包

注意:下文中涉及到的IP(有红色标记),要替换成实际使用的IP。

安装docker

注意:如果未安装docker或docker版本低于1.6.2,则安装到最新的docker版本。

$ sudo apt-get update$ sudo apt-get install docker.io

搭建镜像服务器

登录服务器

$ ssh root@192.168.142.128

导入registry镜像

$ sudo docker load < registry.tar

启动registry

$ sudo mkdir –p /opt/data$ cd$ docker run -d -p 5000:5000 --restart=always --name registry  -v /opt/data/registry:/var/lib/registry  registry:2

登录客户端,进行测试和验证

登录客户端主机

$ ssh root@192.168.142.131

添加docker配置

客户端通过HTTP协议拉取镜像,需要添加insecure-registry配置。在ubuntu14.04的环境下编辑docker的配置文件中,添加DOCKER_OPTS选项内容。,操作如下:

$ sudo vi /etc/default/docker

加入如下内容(IP应为服务端IP):

DOCKER_OPTS="--insecure-registry 192.168.142.128:5000"

重启docker,使配置生效

$ sudo service docker restart

测试1,上传镜像到服务端

(1)上传之前,先对客户端上的某个镜像打tag。下面以skylar_beanstalkd镜像为例。通过docker images命令,查到skylar_beanstalkd的容器id为a1b2c3d4e5(注意,实际部署时要对此id进行替换)。

$ sudo docker tag a1b2c3d4e5 192.168.142.128:5000/skylar_beanstalkd

(2)上传镜像

$ sudo docker push 192.168.142.128:5000/skylar_beanstalkd

测试2,从服务端拉取镜像

$ sudo docker pull 192.168.142.128:5000/skylar_beanstalkd

查看镜像是否拉取成功

$ sudo docker images | grep skylar_beanstalkd

如果结果中,查到192.168.142.128:5000/skylar_beanstalkd,则表明拉取成功。

参考文献

  • docker官网资料,https://docs.docker.com/registry/deploying/
0 0