学习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间反复测试和网上案列的整合,总算是成功了,也借此 机会对学习Docker的朋友有所帮助。
个人的愚见:博友在练习的时候建议用CentOS 7.x系统,不建议用CentOS 6.x系统
 
一、准备
地址规划:
| 
Docker私有仓库地址:192.168.0.109
 Docker客户端地址:192.168.0.110
 | 
 
 
1、激活网卡
2、关闭本地防火墙并设置开机不自启动
3、关闭本地selinux防火墙
4、安装ifconfig工具
二、安装
1、安装docker
2、本地私有仓库registry
| 
[root@localhost ~]
 Trying to pull repository docker.io/registry...
 24dd746e9b9f: Download complete 
 706766fe1019: Download complete 
 a62a42e77c9c: Download complete 
 2c014f14d3d9: Download complete 
 b7cf8f0d9e82: Download complete 
 d0b170ebeeab: Download complete 
 171efc310edf: Download complete 
 522ed614b07a: Download complete 
 605ed9113b86: Download complete 
 22b93b23ebb9: Download complete 
 2ac557a88fda: Download complete 
 1f3b4c532640: Download complete 
 27ebaac643a7: Download complete 
 ce630195cb45: Download complete 
 Status: Downloaded newer image fordocker.io/registry:latest
 [root@localhost ~]
 REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
 docker.io/registrylatest              24dd746e9b9f        3 days ago          413.8 MB
 | 
 
 
3、基于私有仓库镜像运行容器
| 
[root@localhost ~]
 bb2c0d442df94e281479332c2608ef144f378e71743c5410e36b80c465771a95
 [root@localhost ~]
 CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS                    NAMES
 bb2c0d442df9        docker.io/registry:latest   "docker-registry"10 seconds ago      Up 7 seconds        0.0.0.0:5000->5000/tcpserene_hopper
 | 
 
 
4、访问私有仓库
| 
[root@localhost ~]
 {"num_results": 0, "query": "", "results": []} //私有仓库为空,没有提交新镜像到仓库中
 | 
 
 
5、从Docker Hub上下载一个ssh镜像
| 
[root@localhost ~]
 NAME                              DESCRIPTION   STARS     OFFICIAL   AUTOMATED
 docker.io: docker.io/fedora/ssh18                   [OK]
 [root@localhost ~]
 Trying to pull repository docker.io/fedora/ssh...
 2aeb2b6d9705: Download complete 
 511136ea3c5a: Download complete 
 00a0c78eeb6d: Download complete 
 834629358fe2: Download complete 
 571e8a51403c: Download complete 
 87d5d42e693c: Download complete 
 92b5ef05fe68: Download complete 
 92d3910dc33c: Download complete 
 cf2e9fa11368: Download complete 
 Status: Downloaded newer image fordocker.io/fedora/ssh:latest
 [root@localhost ~]
 REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
 docker.io/registrylatest              24dd746e9b9f        3 days ago          413.8 MB
 docker.io/fedora/sshlatest              2aeb2b6d9705        9 days ago          254.4 MB
 | 
 
 
6、创建镜像链接或为基础镜像打个标签
| 
[root@localhost ~]
 [root@localhost ~]
 REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
 docker.io/registrylatest              24dd746e9b9f        3 days ago          413.8 MB
 docker.io/fedora/sshlatest              2aeb2b6d9705        9 days ago          254.4 MB
 127.0.0.1:5000/sshlatest              2aeb2b6d9705        9 days ago          254.4 MB
 | 
 
 
7、修改Docker配置文件制定私有仓库url
| 
[root@localhost ~]
 修改此行
 OPTIONS='--selinux-enabled --insecure-registry 192.168.0.109:5000'
 [root@localhost ~]
 Redirecting to /bin/systemctlrestart  docker.service
 | 
 
 
8、提交镜像到本地私有仓库中
| 
[root@localhost ~]
 The push refers to a repository [127.0.0.1:5000/ssh] (len: 1)
 Sending image list
 Pushing repository 127.0.0.1:5000/ssh(1 tags)
 511136ea3c5a: Image successfully pushed 
 00a0c78eeb6d: Image successfully pushed 
 834629358fe2: Image successfully pushed 
 571e8a51403c: Image successfully pushed 
 87d5d42e693c: Image successfully pushed 
 92b5ef05fe68: Image successfully pushed 
 92d3910dc33c: Image successfully pushed 
 cf2e9fa11368: Image successfully pushed 
 2aeb2b6d9705: Image successfully pushed 
 Pushing tag forrev [2aeb2b6d9705] on {http://127.0.0.1:5000/v1/repositories/ssh/tags/latest}
 | 
 
 
9、查看私有仓库是否存在对应的镜像
| 
[root@localhost ~]
 {"num_results": 1, "query": "", "results": [{"description": "", "name": "library/ssh"}]}
 | 
 
 
10、查看镜像的存储目录和文件
| 
[root@localhost ~]
 /opt/data/registry/repositories/
 └── library
     └── ssh
         ├── _index_images
         ├── json
         ├── tag_latest
         └── taglatest_json
   2 directories, 4 files
 | 
 
 
三、从私有仓库中下载已有的镜像
1、登陆另外一台Docker客户端
| 
[root@localhost ~]
 The authenticity of host '192.168.0.110 (192.168.0.110)'can't be established.
 ECDSA key fingerprint is 5b:81:4b:66:d6:dd:48:16:9f:85:58:72:21:bd:ba:39.
 Are you sure you want to continueconnecting (yes/no)? yes
 Warning: Permanently added '192.168.0.110'(ECDSA) to the list of known hosts.
 root@192.168.0.110's password: 
 Last login: Sun Apr 26 14:39:51 2015 from 192.168.0.103
 | 
 
 
2、修改Docker配置文件
| 
[root@localhost ~]
 修改此行
 OPTIONS='--selinux-enabled --insecure-registry 192.168.0.109:5000'//添加私有仓库地址
 [root@localhost ~]
 Redirecting to /bin/systemctlrestart  docker.service
 | 
 
 
3、从私有仓库中下载已有的镜像
| 
[root@localhost ~]
 Trying to pull repository 192.168.0.109:5000/ssh...
 2aeb2b6d9705: Download complete 
 511136ea3c5a: Download complete 
 00a0c78eeb6d: Download complete 
 834629358fe2: Download complete 
 571e8a51403c: Download complete 
 87d5d42e693c: Download complete 
 92b5ef05fe68: Download complete 
 92d3910dc33c: Download complete 
 cf2e9fa11368: Download complete 
 Status: Downloaded newer image for192.168.0.109:5000/ssh:latest
 [root@localhost ~]
 REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
 192.168.0.109:5000/sshlatest              2aeb2b6d9705        9 days ago          254.4 MB
 | 
 
 
四、浏览器访问仓库
![1.png wKioL1U8yD2CICJXAACRXA3Ij1w707.jpg]()
本文出自 “郑彦生” 博客,请务必保留此出处http://467754239.blog.51cto.com/4878013/1638770