docker之仓库
docker 仓库
- 仓库是Docker集中存放镜像文件的地方
仓库
- 基本用docker hub或者阿里云镜像仓库
- 先登录阿里云,创建仓库
- 设置镜像标签
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:端口