docker之仓库

docker 仓库

  • 仓库是Docker集中存放镜像文件的地方

仓库

  • 基本用docker hub或者阿里云镜像仓库
  • 先登录阿里云,创建仓库docker之仓库
  • 设置镜像标签

docker tag local-image:tagname new-repo:tagname(设置tag)
eg:docker tag hello-world:latest 108001509033/test-hello-world:v1

  • 登录阿里云

docker login(回车,账号密码)

  • 推送镜像

docker push new-repo:tagname
eg:docker push 108001509033/test-hello-world:v1

构件私有仓库

  • 启动Docker Registry,使用Docker提供 Registry镜像就可以搭建本地私有镜像仓库

$ docker run -d -p 5000:5000 --restart=always --name registry -v /mnt/registry:/var/lib/registry
-d:表示在后台运行容器
-p 5000:5000 表示将私有镜像仓库容器默认暴露的5000端口映射到宿主机的5000端口
–restart=always 表示容器启动自动启动本地私有镜像仓库
–name registry 表示生成的容器名
-v /mnt/registry:/var/lib/registry表示将容器默认存储位置/var/lib/registry的数据挂在到宿主机的/mnt/registry目录下

  • 重命名镜像

$ docker tag hello-world:latest localhost:5000/myhellodocker

  • 推送镜像

$ docker push localhost:5000/myhellodocker

  • 查看本地仓库镜像

http://localhost:5000/v2/myhellodocker/tags/list

配置私有库认证

  • 查看Docker Registry私有库创建所在的服务器地址

ifconfig

  • 生成签名证书(在home目录下执行)

mkdir registry && cd registry && mkdir certs && cd certs
openssl req -x509 -days 3650 -subj ‘CN=上面得到的ip:仓库的端口’ -nodes -newkey rsa:2048 -keyout domain.key -out domain.crt
-x509是一个自签发证书的格式
-days 3650:表示证书的有效期
rsa:2048是证书算法长度
domain.key和domain.crt 就是生产的证书文件

  • 生成用户名和秘钥
  • 启动Docker Registry本地镜像仓库服务(将之前的删除)

docker run -d -p 5000:5000 -restart=always --name registry -v /mnt/registry:/var/lib/registry

  • 配置Docker Registry访问端口

sudo mkdir -p/etc/docker/certs.d/仓库所在的ip:端口
sudo cp certs/domain.crt /etc/docker/certs.d/仓库所在的ip:端口

  • Docker Registry私有仓库使用登记

在Docker及其终端使用sudo vim /etc/docker/daemon.json命令编辑并添加以下内容
{“insecure-registries”:[“仓库所在的io:端口”]}

  • 重启并加载docker文件

sudo /etc/init.d/docker restart

  • 登录

docker login 仓库ip:端口