天天看点

docker搭建私有仓库以及使用应用场景操作步骤

应用场景

docker有公共仓库,相当于在公共仓库中存在着大量的镜像资源,但是如果本地要使用这些镜像,需要手动pull到本地,如果下次再用还需要pull,并且docker的公共仓库是在国外的,这样频繁的pull一个镜像很耗时,而且网路受限,经常容易断掉,很麻烦。所以有两个应对策略,第一个就是使用daocloud加速器,第二个就是本地搭建私有仓库,当从公共仓库中pull下来的镜像,存到本地私有仓库,下次还需要使用直接从本地下载,那速度就快很多了。

操作步骤

1. 准备

服务器IP地址为192.168.199.31(私有仓库服务器) 虚拟机名为docker1

客户端IP地址为192.168.199.32(你们的工作机) 虚拟机名为docker2

2. 操作

2.1 安装daocloud

由于httpd镜像非常难下载,单用docker很难成功,这里采用docker加速器——daocloud, 访问地址 ,进行账户注册,登录点开控制台,点加速器,具体操作daocloud会一步一步的引导,十分方便。Daocloud同时还可以作为docker的Web UI Manager对docker的容器,镜像进行管理。

下面进行一步一步详解操作步骤:

  • 2、点击立即开始,进入界面
  • 3、这里选择centos,因为试验用的系统是centos7.1
  • 4、下面选安装好了,接下来把页面跳出的命令输入到你所安装docker的虚拟机上
  • 5、最终显示接入成功,然后在本地虚拟机输入,启动daocloud加速器
#  service daomonit restart           

本人已经将试验中的两个节点加入到daocloud中:

2.2 下载httpd

由于下载了daocloud,只需要用如下命令就可以下载httpd镜像了
#  dao pull httpd           

2.3 查看images

# docker images           

2.4 查创建镜像链接或为基础镜像打个标签

# docker tag httpd 127.0.0.1:5000/httpd           

2.5 将镜像上传至服务器

# docker  push  127.0.0.1:5000/httpd            

2.6 浏览器访问私有仓库的镜像,多了httpd

http://192.168.199.31:5001/v1/search           
客户端同样可以可以看出来:
 # curl 127.0.0.1:5000/v1/search           

2.7 客户端从私有仓库上进行下载(注:在客户端执行)

# docker  pull  192.168.199.31:5000/httpd           

2.8 在客户端查看镜像(在客户端)

# docker  images           
完成下载!

3. 从服务器下载centos7镜像,然后安装httpd后,创建新的模版镜像上传至服务器

3.1 下载centos镜像

# dao pull centos           

3.2 为centos基础镜像打个标签

查看下载后的镜像:
 # docker images           
打标签,并且查看打完标签后的镜像名称:
 # docker tag centos 127.0.0.1:5000/centos7           

3.3 将镜像上传至服务器

# docker  push  127.0.0.1:5000/centos7           
并在后端查看是否私有仓库中包含了此镜像:
命令为:
 # curl http://127.0.0.1:5000/v1/search            
同时,用浏览器查看私有仓库是否包含centos7镜像:

3.4 在客户端下载私有服务器镜像

# docker pull 192.168.199.31:5000/centos7           

3.5 在客户端的镜像中运行centos7镜像

# docker run -i -t 192.168.199.31:5000/centos7 /bin/bash           
如图所示:就相当于进入了centos7的另一个虚拟机一样,操作都雷同。

3.6 在容器中安装httpd程序

# yum   -y  install  httpd           
按ctrl+D退出,输入docker ps -a           
此时记下,centos7的容器id为c62a3398a6e0

3.7 把安装httpd的centos7仓库做成新的镜像

# docker  commit c62a3398a6e0  192.168.199.31:5000/centos7/httpd           
确保万一,查看是否有该镜像:

3.8 把新的镜像从客户端上传到私有仓库中

# docker push 192.168.199.31:5000/centos7/httpd           

3.9 查看私有仓库中是否有该镜像

# curl http://127.0.0.1:5000/v1/search
或者  # curl http://192.168.199.31:5000/v1/search           
浏览器同样也可以访问: