Docker远程私有镜像仓库搭建

日期: 2020-03-17 00:29:00
更新: 2020-03-17 00:29:00
By Stiller

分类 Linux.

标签: Docker

Docker远程私有镜像仓库搭建

使用Docker进行打包应用后,自然不能上传至公用的镜像仓库,考虑到安全和方便,可以简单的采用一台服务器作为私有镜像仓库。

当然第一步需要安装docker,可以使用官方包进行安装,或者一条命令完事。

yum -y install docker

systemctl start docker

接下来需要使用docker下载官方提供的registry镜像,作为母镜像。

docker pull registry

完成后,建立相关的配置文件夹,这里建立在/docker/registry/auth文件夹中

mkdir -p  /docker/registry/auth
mkdir -p  /docker/registry/config
vim  /docker/registry/config/config.yml

编写内容config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
  delete:
    enabled: true
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
threshold: 3

生成用户名和密码,并输出到文件。

docker run --entrypoint htpasswd registry:latest -Bbn 用户名 密码  >> /docker/registry/auth/htpasswd

接着使用下方的命令进行容器的启动,通过-p参数可以指定不同的端口绑定,如果提示启动失败提示已经启动,则可能是安装registry时自动创建了一个容器已经 自动在运行,可以使用需要使用docker rm xxx命令进行删除后重新执行。

docker run -d -p 5000:5000 --restart=always --name=registry -v /docker/registry/config/:/etc/docker/registry/ -v /docker/registry/auth/:/auth/ -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /docker/registry/:/var/lib/registry/ registry

接着需要配置客户端的信任列表,setting中的Docker Engine,配置完重启即可。

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "http://182.254.xxx.xxx:5000"
  ],
  "insecure-registries": [
    "182.254.xxx.xxx:5000"
  ],
  "debug": true,
  "experimental": true
}

使用docker login 182.254.xxx.xxx:5000进行登录,输入用户名和密码后,提示Login Succeeded 推送镜像。

docker tag web:latest 182.254.XXX.XXX:5000/web:latest
docker push 182.254.XXX.XXX:5000/web:latest

Done!

链接