获取registry镜像
docker pull registry:latest
启动一个容器
docker run -d -v /docker/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/docker/registry目录挂载到该目录,即可实现将镜像保存到主机的/docker/registry目录了。 运行docker ps看一下容器情况 检查5000端口
netstat -an | grep 5000
打开浏览器输入http://127.0.0.1:5000/v2,出现{}说明registry运行正常 验证 现在我们通过将镜像push到registry来验证一下。 我的机器上有个hello-world的镜像,我们要通过docker tag将该镜像标志为要推送到私有仓库
docker tag hello-world 127.0.0.1:5000/hello-world
接下来,我们运行docker push将hello-world镜像push到我们的私有仓库中
docker push 127.0.0.1:5000/hello-world
现在我们可以查看我们本地/docker/registry目录下已经有了刚推送上来的hello-world。我们也在浏览器中输入http://127.0.0.1:5000/v2/_catalog,可以看到{"repositories": [hello-world]} 现在我们可以先将我们本地的127.0.0.1:5000/hello-world和hello-world先删除掉
docker rmi hello-world
docker rmi 127.0.0.1:5000/hello-world
然后使用docker pull从我们的私有仓库中获取hello-world镜像
docker pull 127.0.0.1:5000/hello-world
可能问题 可能会出现无法push镜像到私有仓库的问题。这是因为我们启动的registry服务不是安全可信赖的。这是我们需要修改docker的配置文件在你要远程访问 docker registry 的机器上,修改文件 /etc/default/docker 或 /etc/sysconfig/docker,具体是哪个取决于你的系统,添加下面的内容
ADD_REGISTRY='--add-registry xxx.xxx.xxx.xxx:5000'
DOCKER_OPTS="--insecure-registry xxx.xxx.xxx.xxx:5000"
INSECURE_REGISTRY='--insecure-registry xxx.xxx.xxx.xxx:5000'
然后重启docker后台进程 service docker restart 这时候再push即可
部署WebUI 目前找到了两个 web ui,一个是 docker-registry-frontend https://github.com/kwk/docker-registry-frontend,另一个是 hyper/docker-registry-web https://hub.docker.com/r/hyper/docker-registry-web/。 这两个 ui 功能差不多,只需任选其一就可以了。截止到我安装的时候,docker-registry-frontend 的功能还不完善,没有删除镜像的功能,只能浏览。后一个同时具备 删除和浏览 的功能。 1、创建工作目录
$ mkdir -p /docker/registryconf /docker/webconf
$ cd /docker
2、建一个用于 registry 的配置文件
$ vim /docker/registryconf/config.yml
version: 0.1
log:
level: info
formatter: text
fields:
service: registry-srv
environment: production
storage:
cache:
layerinfo: inmemory
filesystem:
rootdirectory: /var/lib/registry
delete:
# 要在 ui 上能够删除镜像,enable 的值必须是 true
enabled: true
http:
addr: :5000
3、新建一个用于 ui 的配置文件
$ vim /docker/webconf/config.yml
registry:
# Docker registry url
url: http://registry-srv:5000/v2 # Docker registry fqdn
name: localhost:5080
# To allow image delete, should be false
readonly: false
auth:
# Disable authentication
enabled: false
4、新建一个启动脚本
$ vim docker-compose-registry.yml
version: '2'
services:
registry-srv:
image: registry
volumes:
- /docker/registryconf:/etc/docker/registry:ro
- /docker/registry:/var/lib/registry
- /etc/localtime:/etc/localtime
container_name: registry-srv
restart: always
ports:
- "5000:5000"
registry-web:
image: hyper/docker-registry-web
volumes:
- /docker/webconf:/conf/:ro
- /etc/localtime:/etc/localtime
container_name: registry-web
depends_on:
- registry-srv
restart: always
ports:
- "5080:8080"
5.启动
docker-compose -f docker-compose-registry.yml up -d
打包好的配置文件放在/根目录 运行docker-compose -f docker-compose-registry.yml up -d即可启动 下载配置文件docker.zip