搭建Docker私服及简单实战

原文地址:http://blog.csdn.net/boling_cavalry/article/details/78818462

hub.docker.com上可以保存镜像,但是网速相对较慢,在内部环境中搭建一个私有的公共仓库是个更好的方案,今天我们就来实战搭建私有docker仓库吧;

环境规划

需要两台机器:docker私服仓库的server和使用docker的普通机器,这两个机器都是ubuntu16版本的server,ip信息如下:

机器名ip功能
docker-registry192.168.119.148docker私有仓库服务器
docker-app192.168.119.155运行docker服务的普通服务器

准备机器

本次实战中,上述两台机器是vmware上创建的两个虚拟机,都安装了docker服务,详细的创建和安装过程,请参照《rancher下的kubernetes之一:构建标准化vmware镜像》,记得在vmware中给两个镜像把名字分别改成“docker-registry”和“docker-app”,以免后面搞错了;

虚拟机启动后,请先修改/etc/hostname文件,将两个机器的hostname分别修改成“docker-registry”和“docker-app”,然后用reboot命令重启;

安装私有仓库

  • 登录docker-registry机器(推荐使用SecureCRT);
  • 执行以下命令,会启动一个registry容器,该容器用于提供私有仓库的服务:
<span style="color:#000000"><code class="language-shell">docker run <span style="color:#4f4f4f">--</span>name docker-registry -d -p <span style="color:#006666">5000</span>:<span style="color:#006666">5000</span> registry</code></span>
  • 1
  • 执行docker ps命令看一下容器情况,如下图: 
    这里写图片描述
    容器正常启动,对外提供服务通过5000端口映射到docker-registry的5000端口;

  • 执行命令curl -X GET http://127.0.0.1:5000/v2/_catalog,收到的响应如下,是个json对象,其中repositories对应的值是空的json数组,表示目前仓库里还没有镜像:

<span style="color:#000000"><code class="language-shell">{"repositories":[]}</code></span>

OK,私有仓库已经创建和启动完毕了,接下来试试如何使用吧;

支持http协议推送

正常情况下,应用服务器推送镜像到仓库用的是https,此处我们通过命令行来测试推送用的是普通的http,所以需要修改docker的启动参数,使之允许以http协议工作;

  • 执行推送镜像的机器是docker-app,所以登录到此机器(推荐使用SecureCRT);

  • 修改/etc/default/docker文件,加入以下红框内容: 
    这里写图片描述

  • 再修改 /lib/systemd/system/docker.service,以下红框中的内容,第一行为新增,第二行为修改: 
    这里写图片描述

  • 执行以下命令,重新加载配置信息再重启docker服务:

<span style="color:#000000"><code class="language-shell">systemctl daemon-reload;service docker restart</code></span>
  • 1

推送镜像到私有仓库

  • 接下来我们在docker-app先下载一个镜像,再将这个镜像推送到私有仓库中去;
  • 登录docker-app机器(推荐使用SecureCRT);
  • 执行命令docker pull tomcat,从hub.docker.com下载最新版本的tomcat镜像,如下图: 
    这里写图片描述

  • 下载完毕后,执行docker images查看镜像的信息,如下图: 
    这里写图片描述

  • 如上图红框所示,这个镜像的ID是3dcfe809147d,所以我们执行以下命令,给这个镜像添加一个带有私有仓库IP的TAG,这样后面才能成功推送到私有仓库:

<span style="color:#000000"><code class="language-shell"><span style="color:#4f4f4f">docker</span> tag 3dcfe809147d <span style="color:#006666">192.168.119.148:5000</span>/tomcat</code></span>
  • 1
  • 再执行docker images查看镜像的信息,如下图,出现了一个新的镜像,REPOSITORY是192.168.119.148:5000/tomcat: 
    这里写图片描述

  • 执行以下命令进行推送:

<span style="color:#000000"><code class="language-shell">docker <span style="color:#000088">push</span> <span style="color:#006666">192.168</span>.<span style="color:#006666">119.148</span>:<span style="color:#006666">5000</span>/tomcat</code></span>
  • 1

可以看到顺利进行中,如下图: 
这里写图片描述

这里写图片描述

使用私有仓库的镜像

  • 在docker-app机器上,先执行以下命令将本地镜像删掉:
<span style="color:#000000"><code class="language-shell"><span style="color:#4f4f4f">docker</span> rmi <span style="color:#006666">192.168.119.148:5000</span>/tomcat tomcat</code></span>
  • 1
  • 再执行以下命令,用私服上的镜像来创建一个容器,映射8080端口:
<span style="color:#000000"><code class="language-shell">docker run <span style="color:#880000">--name tomcat001 -p 8080:8080 -idt 192.168.119.148:5000/tomcat</span></code></span>
  • 1
  • 本地没有镜像就去私服下载,如下图: 
    这里写图片描述

  • docker-app的IP是192.168.119.155,所以在当前电脑上打开浏览器,输入:192.168.119.155:8080,可以看到下图熟悉的tomcat欢迎页:

这里写图片描述

至此本次实战就结束了,希望能对您的私有仓库搭建有所帮助。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建Docker私有仓库,您可以按照以下步骤进行操作: 1. 安装Docker:首先,确保您的系统上已经安装了Docker。您可以从Docker官方网站(https://www.docker.com/)上下载并安装适用于您操作系统的版本。 2. 创建Docker私有仓库容器:使用以下命令创建一个Docker私有仓库容器: ``` docker run -d -p 5000:5000 --restart=always --name registry registry:2 ``` 这将在本地主机的5000端口上启动一个私有仓库容器,并将其命名为`registry`。 3. 配置Docker客户端:编辑Docker配置文件,使其能够连接到私有仓库。在Linux系统上,配置文件位于`/etc/docker/daemon.json`,在Windows上,配置文件位于`C:\ProgramData\docker\config\daemon.json`。如果配置文件不存在,可以创建一个新的。 在配置文件中添加以下内容: ``` { "insecure-registries" : ["your-server-ip:5000"] } ``` 将`your-server-ip`替换为您私有仓库所在的服务器IP地址。如果您的私有仓库在本地主机上,可以使用`localhost`或`127.0.0.1`。 4. 重启Docker服务:保存并关闭配置文件后,重启Docker服务以使配置生效。您可以使用以下命令来重启Docker服务: ``` sudo systemctl restart docker ``` 5. 使用私有仓库:现在您可以使用私有仓库来推送和拉取镜像。例如,要推送一个镜像到私有仓库,使用以下命令: ``` docker tag image-name your-server-ip:5000/image-name docker push your-server-ip:5000/image-name ``` 将`image-name`替换为您要推送的镜像的名称。 要从私有仓库中拉取镜像,使用以下命令: ``` docker pull your-server-ip:5000/image-name ``` 将`image-name`替换为您要拉取的镜像的名称。 这样,您就成功搭建了一个Docker私有仓库。您可以在私有仓库中存储和管理自己的镜像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值