CentOS7搭建Docker私有仓库

xiaoxiao2021-02-28  107

一、准备

地址规划:

Docker私有仓库地址:192.168.0.109 Docker客户端地址:192.168.0.110

1、激活网卡

# vim /etc/sysconfig/network-scripts/ifcfg-eno16777728 修改此行 ONBOOT= yes # /etc/init.d/network restart

2、关闭本地防火墙并设置开机不自启动

# systemctl stop firewalld.service # systemctl disable firewalld.service

3、关闭本地selinux防火墙

  # vi /etc/sysconfig/selinux  SELINUX=disabled # setenforce 0   

4、安装ifconfig工具

  # yum install net-tools

二、安装

1、安装docker

# yum install docker # yum upgrade device-mapper-libs # service docker start # chkconfig docker on

2、本地私有仓库registry

[root@localhost ~] # docker pull registry 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  for  docker.io /registry :latest [root@localhost ~] # docker images REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE docker.io /registry    latest              24dd746e9b9f        3 days ago          413.8 MB

3、基于私有仓库镜像运行容器

[root@localhost ~] # docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry docker.io/registry bb2c0d442df94e281479332c2608ef144f378e71743c5410e36b80c465771a95 [root@localhost ~] # docker ps -a 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 /tcp    serene_hopper

4、访问私有仓库

[root@localhost ~] # curl 127.0.0.1:5000/v1/search { "num_results" : 0,  "query" :  "" ,  "results" : []}  // 私有仓库为空,没有提交新镜像到仓库中

5、从Docker Hub上下载一个ssh镜像

[root@localhost ~] # docker search -s 10 ssh NAME                              DESCRIPTION   STARS     OFFICIAL   AUTOMATED docker.io: docker.io /fedora/ssh                  18                   [OK] [root@localhost ~] # docker pull fedora/ssh 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  for  docker.io /fedora/ssh :latest [root@localhost ~] # docker images REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE docker.io /registry      latest              24dd746e9b9f        3 days ago          413.8 MB docker.io /fedora/ssh    latest              2aeb2b6d9705        9 days ago          254.4 MB

6、创建镜像链接或为基础镜像打个标签

[root@localhost ~] # docker tag docker.io/fedora/ssh 127.0.0.1:5000/ssh [root@localhost ~] # docker images REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE docker.io /registry      latest              24dd746e9b9f        3 days ago          413.8 MB docker.io /fedora/ssh    latest              2aeb2b6d9705        9 days ago          254.4 MB 127.0.0.1:5000 /ssh      latest              2aeb2b6d9705        9 days ago          254.4 MB

7、修改Docker配置文件制定私有仓库url

[root@localhost ~] # vim /etc/sysconfig/docker 修改此行 OPTIONS= '--selinux-enabled --insecure-registry 192.168.0.109:5000' [root@localhost ~] # service docker restart Redirecting to  /bin/systemctl  restart  docker.service

8、提交镜像到本地私有仓库中

[root@localhost ~] # docker push 127.0.0.1:5000/ssh 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  for  rev [2aeb2b6d9705] on {http: //127 .0.0.1:5000 /v1/repositories/ssh/tags/latest }

9、查看私有仓库是否存在对应的镜像

[root@localhost ~] # curl 127.0.0.1:5000/v1/search { "num_results" : 1,  "query" :  "" ,  "results" : [{ "description" :  "" ,  "name" :  "library/ssh" }]}

10、查看镜像的存储目录和文件

[root@localhost ~] # tree /opt/data/registry/repositories/ /opt/data/registry/repositories/ └── library      └──  ssh          ├── _index_images          ├── json          ├── tag_latest          └── taglatest_json   2 directories, 4 files

三、从私有仓库中下载已有的镜像

1、登陆另外一台Docker客户端

[root@localhost ~] # ssh root@192.168.0.110 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  continue  connecting ( 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 ~] # vim /etc/sysconfig/docker 修改此行 OPTIONS= '--selinux-enabled --insecure-registry 192.168.0.109:5000'         // 添加私有仓库地址 [root@localhost ~] # service docker restart Redirecting to  /bin/systemctl  restart  docker.service

3、从私有仓库中下载已有的镜像

[root@localhost ~] # docker pull 192.168.0.109:5000/ssh 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  for  192.168.0.109:5000 /ssh :latest [root@localhost ~] # docker images REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE 192.168.0.109:5000 /ssh    latest              2aeb2b6d9705        9 days ago          254.4 MB

四、浏览器访问仓库

http://192.168.184.97:5000/v2/_catalog

转载请注明原文地址: https://www.6miu.com/read-20720.html

最新回复(0)