一、简单了解
Docker Hub 和阿里云这样的公共镜像仓库某些情况下不太方便使用,涉及机密的公司不能提供镜像给公网,需要创建本地私人仓库供团队使用,其中Docker Hub 官方地址:https://hub.docker.com/ Docker Registry是官方提供的工具,可用于构建私有镜像仓库。
二、本地镜像推送到私有库步骤
1 拉取 registry 镜像
docker pull registry
2 运行私有库Registry,相当于本地有个私有Docker Hub
docker run -d -p 5000:5000 -v /summeruse/myregistry/:/tmp/registry --privileged=true registry
说明:
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-p:指定端口映射
默认情况下,仓库被创建在容器的/var/lib/registry/目录下,建议自行用容器卷映射(会在下一篇中记笔记),方便宿主机联调
/summeruse/myregistry/:也可根据自己的命名风格写
3 案例演示:ubuntu安装ifconfig命令
docker run -it ubuntu /bin/bash
apt-get update
apt-get install net-tools
docker commit -m="ifconfig cmd add" -a="summer" 006636c2b78d summerubuntu:1.2
说明:commit用法
docker commit -m="提交的描述信息" -a="作者" 容器ID 创建的目标镜像名:[标签名]
docker run -it dd73ca32c43c /bin/bash
4 curl验证私服库上有哪些镜像
curl -XGET http://主机ip地址:5000/v2/_catalog
注意:填写自己host主机ip地址,如果是阿里云或者其它的云服务器一定要在安全组中放开相应端口,否则会出现超时连接错误。
5 将新镜像summerubuntu:1.2 修改符合私服规范的Tag
docker tag 镜像名:Tag Host:Port/Repository:Tag
docker tag summerubuntu:1.2 主机ip地址:5000/summerubuntu:1.2
6 修改配置文件使之支持http
vim /etc/docker/daemon.json
添加
"insecure-registries":["ip:5000"]
注意:docker默认不允许http方式推送镜像,通过配置来取消这个限制。如果不生效,重启docker
systemctl restart docker
systemctl status docker
docker run -d -p 5000:5000 -v /summeruse/myregistry/:/tmp/registry --privileged=true registry
7 push推送到私服库
docker push 主机ip:5000/summerubuntu:1.2
8 curl验证私服库上有哪些镜像2
curl -XGET http://主机ip:5000/v2/_catalog
9 pull到本地运行
先删除本地镜像
docker images
docker rmi -f 镜像ID
docker pull ip:5000/summerubuntu:1.2
下一篇:Docker_基础篇_7.Docker容器数据卷