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 docker5.测试提交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/listv2的变更可以参看git地址:https://github.com/docker/docker/issues/9015
Docker学习之搭建仓库
本文标题:Docker学习之搭建仓库
文章作者:忆虎思甜
发布时间:2016年12月08日 - 21时56分
最后更新:2016年12月08日 - 22时50分
原始链接:http://yoursite.com/2016/12/08/docker-5/
许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。
Docker学习之容器
>