Docker的私有仓库

学习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、激活网卡

# 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

[[email protected] ~]# 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

[[email protected] ~]# docker images

REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

docker.io/registry   latest              24dd746e9b9f        3 days ago          413.8 MB

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

[[email protected] ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry docker.io/registry

bb2c0d442df94e281479332c2608ef144f378e71743c5410e36b80c465771a95

[[email protected] ~]# 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、访问私有仓库

[[email protected] ~]# curl 127.0.0.1:5000/v1/search

{"num_results": 0, "query""""results": []} //私有仓库为空,没有提交新镜像到仓库中

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

[[email protected] ~]# docker search -s 10 ssh

NAME                              DESCRIPTION   STARS     OFFICIAL   AUTOMATED

docker.io: docker.io/fedora/ssh                 18                   [OK]

[[email protected] ~]# 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

[[email protected] ~]# 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、创建镜像链接或为基础镜像打个标签

[[email protected] ~]# docker tag docker.io/fedora/ssh 127.0.0.1:5000/ssh

[[email protected] ~]# 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

[[email protected] ~]# vim /etc/sysconfig/docker

修改此行

OPTIONS=‘--selinux-enabled --insecure-registry 192.168.0.109:5000‘

[[email protected] ~]# service docker restart

Redirecting to /bin/systemctl restart  docker.service

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

[[email protected] ~]# 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、查看私有仓库是否存在对应的镜像

[[email protected] ~]# curl 127.0.0.1:5000/v1/search

{"num_results": 1, "query""""results": [{"description""""name""library/ssh"}]}

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

[[email protected] ~]# tree /opt/data/registry/repositories/

/opt/data/registry/repositories/

└── library

    └── ssh

        ├── _index_images

        ├── json

        ├── tag_latest

        └── taglatest_json

2 directories, 4 files

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

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

[[email protected] ~]# ssh [email protected]

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.

[email protected]‘s password: 

Last login: Sun Apr 26 14:39:51 2015 from 192.168.0.103

2、修改Docker配置文件

[[email protected] ~]# vim /etc/sysconfig/docker

修改此行

OPTIONS=‘--selinux-enabled --insecure-registry 192.168.0.109:5000‘        //添加私有仓库地址

[[email protected] ~]# service docker restart

Redirecting to /bin/systemctl restart  docker.service

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

[[email protected] ~]# 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

[[email protected] ~]# docker images

REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

192.168.0.109:5000/ssh   latest              2aeb2b6d9705        9 days ago          254.4 MB

四、浏览器访问仓库

时间: 2024-10-14 00:53:26

Docker的私有仓库的相关文章

docker创建私有仓库

1.查看远程仓库中的列表$ sudo docker search registry    //会列出你所需要的仓库 2.获取registry仓库$ sudo docker pull registry   //最新 3.运行 $ sudo docker run -p 5000:5000  docker.io/registry   //-p映射端口 3.1查看容器运行情况[[email protected] docker]# docker psCONTAINER ID        IMAGE   

docker 配置私有仓库、打开TCP管理端口

docker配置私有仓库.打开TCP管理端口 该机器主要用于jenkins在编译打包镜像时使用.需要能push镜像到私有仓库,需要开通tcp管理端口作为docker远程机器. 安装docker # vi /etc/resolv.conf nameserver 114.114.114.114 # yum update # yum install -y yum-utils device-mapper-persistent-data lvm2 # yum-config-manager --add-re

Docker 搭建私有仓库

搭建私有仓库 首先在136机器上下载registry镜像 $ sudo docker pull registry 下载完之后我们通过该镜像启动一个容器 $ sudo docker run -d -p 5000:5000 registry 默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下,如下: $ sudo docker run -d -p 5000

CentOS7基于Nginx和Registry2.0搭建Docker安全私有仓库

作用:Nginx做反向代理,在访问私有仓库时加个密码验证,密码用htpasswd生成 IP:192.168.0.227 1.下载registry2.0镜像 docker pull  registry:2.1.1 2.安装Nginx yum  -y install nginx 3.创建docker仓库数据和配置目录 sudo mkdir -p /opt/docker/registry/data sudo mkdir -p /opt/docker/registry/conf 4.运行docker仓库

Docker本地私有仓库的建立

环境: 192.168.139.26 docker的客户端 192.168.139.52 docker的服务器端(仓库所在位置) 首先在192.168.139.52上下载registry镜像 [email protected]:~$ sudo docker pull registry 下面操作在192.168.139.52完成 默认情况下会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/t

Docker搭建私有仓库

1,下载仓库镜像. docker pull  registry    //主要用于搭建私有仓库的. 2,将宿主机端口映射到容器中去,容器的5000端口是不能更改的. docker run -d -p 5000:5000 registry //以registry镜像启动容器,监听5000端口 3,进入到私有仓库容器中去. docker exec -it  796(容器id)  /bin/sh    //这里是sh 不是bash 因为这里是没有做软连接的. netstat -lnp 查看5000端口

docker建立私有仓库

实验环境: 怎样将vmware与viutualBOX的网络互通这里就不详细说明了. 在xin7上安装docker 首先在docker的官方站点下载docker的windos安装包,因为墙的因素,这个安装包很难下下来,这边提供了我的网盘链接http://pan.baidu.com/s/1dDGQHZb. 因为docker是基于linux平台的,这里安装程序会安装一个virtualBOX的虚拟机,在虚拟机上生成一的boot2docker的docker环境,在桌面生成Boot2Docker Start

Docker 之 私有仓库registry

摘要: 1.拉去 registry镜像,例如在daocloud.io/registry这个私有镜像仓库 docker pull daocloud.io/registry 2.运行容器,挂在镜像内docker镜像仓库/var/lib/registry 至本地/root/my_docker_registry 1.拉去 registry镜像,例如在daocloud.io/registry这个私有镜像仓库 docker pull daocloud.io/registry 2.运行容器,挂在镜像内dock

docker registry私有仓库部署

私有仓库服务端:12.40[[email protected]_golang ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry-dev --name docker-registry registry:2.4[[email protected]_golang ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMEScebb252856b1