前面我们是把dll发布到服务器,然后在服务器把dll打包成镜像,更通用的做法是在本地打包成镜像然后推送到镜像仓库,服务器拉取最新镜像运行容器。镜像仓库可以是Docker官方的公共镜像仓库Docker Hub,为了避免暴露也可以自建私有镜像仓库。下面简单介绍自建私有镜像仓库及其发布部署流程。
运行环境
腾讯云
CentOS 7.5 64位
1核 2GB内存 1M带宽
Registry私有镜像仓库
Docker Hub是 Docker 默认的官方镜像仓库,包含许多镜像。如果想要搭建私有镜像仓库, Docker 提供了 Registry 镜像,使得搭建私有仓库非常简单。
搭建镜像仓库
- 先在服务器中下周 Registry 镜像
docker pull registry
- 运行一个 Registry 镜像仓库的容器实例
docker run -d -v /edc/images/registry:/var/lib/registry -p 6000:5000 --restart=always --name uncmd-registry registry
- 查看镜像
curl http://your-server-ip:6000/v2/_catalog
- 上传镜像
要上传镜像到私有仓库,需要在镜像的 tag 上加入仓库地址
docker tag your-image-name:tagname your-server-ip:6000/your-image-name:tagname
注意仓库地址没有加协议部分,docker 默认的安全策略需要仓库是支持 https 的,如果服务器只能使用 http 传输,那么直接上传会失败,需要在 docker 客户端的配置文件中进行声明,增加
insecure-registries
配置。
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["150.158.107.66:6000"],
"live-restore": true
}
重新启动 docker 服务使配置生效
systemctl restart docker
开始上传镜像到服务端镜像仓库
docker push your-registry-server-ip:6000/your-image-name:tagname
- 下载镜像
直接使用 pull
命令下载镜像即可
docker pull your-server-ip:6000/your-image-name:tagname
可以通过下面的api获取要下载的镜像有哪些tag(版本)
curl http://your-server-ip:6000/v2/your-image-name/tags/list
- 本文链接:http://uncmd.github.io/share/self-docker-registry/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若您想及时得到回复提醒,建议跳转 GitHub Issues 评论。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues