Docker学习之搭建仓库

Docker仓库分为公有仓库和私有仓库,仓库与注册服务器容易混淆,仓库和注册服务器是不同的,仓库是存放多个镜像的地方,而注册服务器则是存放多个仓库的地方。比如仓库地址:
dl.dockerpool.com/ubuntu dl.dockerpool.com为注册服务器地址,而ubuntu为仓库名。

1.Docker hub

使用docker search name 可以从docker hub网站搜索镜像,使用docker pull命令,从docker hub上将镜像下载到本地。


2.docker pool社区简介

国内的docker技术社区:dockerpool.com提供了很多官方的镜像下载服务。
使用docker pull命令 从不同的docker镜像服务网站下载docker镜像时,需要指定注册服务器的地址以及待下载镜像的仓库地址
比如: docker pull docker.pool.com:5000/ubuntu
可以使用docker tag命令来更新镜像的标签,与官方镜像的标签保持一致。目前,阿里云等应用服务提供商也提供了docker的镜像下载服务。

3. 创建和使用私有仓库

A.使用registry镜像创建仓库,docker pull registry 下载 registry镜像

B.创建并启动容器, 绑定宿主机的5000端口到容器的5000端口, 挂载本地目录/opt/data/registry 到 /tmp/registry


docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
查看registry容器的IP地址:

docker inspect -f .NetworkSettings.IPAddress 06f7b19dc54f
172.17.0.6

为registry容器重新打一个tag,便于使用与区分

测试提交镜像到本地私有仓库, 提交时报错如下:

4.Centos7上 安装docker并搭建docker的私有仓库

CentOS7安装docker则相对比较简单
//yum安装docker
1.yum install -y docker-io
//启动docker服务
2.service docker start
//将docker服务设置为开机启动
3.chkconfig docker on

安装完docker之后,搭建私有仓库

1.下载registry镜像
2.执行命令:docker run -d -p 5000:5000 --name docker_registry -v /opt/data/docker/registry:/tmp/registry registry  启动私有仓库容器
3.执行命令: docker inspect -f {{".NetworkSettings.IPAddress"}} 容器ID 查看私有仓库容器的内网ip地址
4.默认提交会提示https相关的错误信息,因此需要修改配置,centos7  1.10版本的docker配置文件位置在 /etc/sysconfig/docker


如上图的红框选中的内容,将私有仓库的地址配置上去,保存文件之后,重启docker服务,systemctl restart docker

5.测试提交docker镜像

将镜像列表中的docker.io/centos打一个tag 172.17.0.2:5000/centos 如下:


执行镜像提交命令:docker push 172.17.0.2:5000/centos

与容器交互,可以下载.bashrc_docker

$ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
$ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
这个文件中定义了很多方便使用 Docker 的命令,例如 docker-pid 可以获取某个容器的 PID;而 docker-enter 可以进入容器或直接在容器内执行命令。
$ echo $(docker-pid <container>)
$ docker-enter <container> ls
$ docker-enter <container> bash

最初使用 curl http://172.17.0.2:5000/v1/search 来访问,发现返回404 page not found的信息
在网上查找答案之后,发现,自己搭建的registry仓库,来自docker官方的最新版本的镜像,docker registry已经从最初的v1升级到了v2,因此,如上curl的路径是错误的,
最新的地址是这么个样子:curl http://172.17.0.2:5000/v2 或者 curl http://172.17.0.2:5000/v2/{name}/tags/list

v2的变更可以参看git地址:https://github.com/docker/docker/issues/9015

文章目录
  1. 1. 1.Docker hub
  2. 2. 2.docker pool社区简介
  3. 3. 3. 创建和使用私有仓库
    1. 3.1. A.使用registry镜像创建仓库,docker pull registry 下载 registry镜像
    2. 3.2. B.创建并启动容器, 绑定宿主机的5000端口到容器的5000端口, 挂载本地目录/opt/data/registry 到 /tmp/registry
  4. 4. 4.Centos7上 安装docker并搭建docker的私有仓库
  5. 5. 5.测试提交docker镜像
,