您的位置:首页 > 运维架构 > Docker

Docker私有仓库详细搭建步骤

2015-10-05 11:54 781 查看
网上有很多了,但根据实际情况的不同,会有很多问题,经过一个星期的摸索,终于在我的实验环境下成功了,下面详细记录过程。

网上最好的教材:https://yeasy.gitbooks.io/docker_practice/content

实验环境:

实体机:windows 8

虚拟机:VM10

虚拟环境:Ubuntu15.04+Debian8.2 (查看系统版本用lsb_release -a 查看内核版本用uname -a)

系统安装:ubuntu下安装

安装docker

$ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker; $ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc

安装运行docker-registry

sudo docker run -d -p 5000:5000 registry  //首次会从hub docker下载


Debian下安装

先添加源

在/etc/apt/sources.list中添加

deb http://get.docker.io/ubuntu docker main

deb-src http://get.docker.io/ubuntu docker main

然后运行

apt-get update

apt-get install lxc-docker

概念理解:如果本地没有拉取过docker-registry,则首次运行会pull registry。我们的Docker客户端和服务器端的连接配置成http的,如果要安全考虑,需要https连接,需要安装ssl和生成证书,这里就不用。

详细步骤

1、在hub docker里搜索需要的images,eg

docker search elasticsearch

2、pull想要的images

docker pull elasticsearch

3、查看本地有的images

docker images

4、为了不适用ssl,给配置文件加参数

nano /etc/default/docker

DOCKER_OPTS="--insecure-registry localhost:5000"

用service docker restart重启后

用ps aux |grep docker查看这条参数有没有加上

5、如果没有运行regsitry,运行

docker run -d -p 5000:5000 --restart:always --name registry [imageID]

如果报错容器已经使用,则先删除registry容器

docker rm registry (可能要强制删除加 -f)

6、push到registry之前先要tag

例如:要将elasticsearch push到registry

docker tag elasticsearch localhost:5000/elasticsearch

docker push localhost:5000/elasticsearch

7、进入regsitry容器查看是否push成功

第一种: docker-enter <container> ls /tmp/registry/images

第二种:curl http://localhost:5000/v1/search[/code] 
还有很多方法。


8、配置Debian

同样在 \etc\default\docker文件里添加参数

但问题来了,当用service docker restart重启服务,并用ps查看进程时,发现参数并没有加上,所以在debian上pull的时候缺省是用https,用systemctl status docker

查看,发现启动文件有个是/lib/system/system/docker.service,在这个文件里修改

ExeCStart=/usr/bin/docker -d -H fd:// --insecure-registry ubuntu:5000

用systemctl restart docker就好了

9、在Debain上pull

docker pull ubuntu:5000/elasticsearch

成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: