本地镜像发布到私有库流程
是什么
1、官方DockerHub地址:https://hubdockercom/.中国大陆访问太慢 且准备被阿里云取代的趋势,不太主流。
2、Dockerhub、阿里云这样的公共镜像仓库可能不太方便涉及机密的公司不可能提供镜像给公网。所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。
DockerRegistry是官方提供的工具,可以用于构建私有镜像仓库
将本地镜像推送到私有仓库
1、下载镜像Docker Registry
2、运行私有库Registry,相当于本地有个私有DockerHub
docker run -d -p 5000:5000 -v /ljxuse/myregistry/:/tmp/registry —privileged=true registry
3、案例演示创建一个新镜像,Ubuntu安装ifconfig命令
下载ubuntu 并本地运行
docker pull ubuntu
运行一个容器,注意是原始的ubuntu
docker run -it ubuntu /bin/bash
原始Ubuntu镜像是不带着ifconfig命令
安装ifconfig 命令,并测试通过
apt-get update
apt-get install net-tools
通过commit新的镜像
db5b9e4f573d :对应的容器ID
docker commit -m=”ifconfig add cmd” -a=”ljx” db5b9e4f573d ubuntu-ifconfig:1.2
执行之后存在一个 ubuntu-ifconfig 的镜像
启动新镜像与原来的对比
4、curl验证私服库上有什么镜像
使用阿里云或云服务是此是访问的地址可以是 127.0.0.1 或者 对应云服务的内网地址
curl -XGET http://127.0.0.0.1:5000/v2/_catalog
curl -XGET http://172.27.15.166:5000/v2/_catalog
5、将新镜像xxx:版本号,修改符合私服规范的Tag
命令 : docker tag 镜像:Tag Host:Port/Repository:Tag
例:docker tag ubuntu-ifconfig:1.2 172.27.15.166:5000/ubuntu-ifconfig:1.2
6、修改配置文件使之支持http
cat /etc/docker/daemon.json
{
“registry-mirrors”: [“https://93ti52qk.mirror.aliyuncs.com“]
}
在后续添加上
{
“registry-mirrors”: [“https://93ti52qk.mirror.aliyuncs.com“],
“insecure-registries”:[“172.27.15.166:5000”]
}
注意 次文件是json 格式,添加处须有逗号 “,”
修改后不生效,建议重启docker
重启docker
systemctl restart docker
docker 的状态
systemctl staut docker
启动docker 私服 仓库
docker run -d -p 5000:5000 -v /ljxuse/myregistry/:/tmp/registry —privileged=true registry
7、push推送到私服库
docker push ip:端口/镜像: Tag
例:docker push 172.27.15.166:5000/ubuntu-ifconfig:1.2
8、curl 验证私服库上有什么镜像
curl -XGET http://172.27.15.166:5000/v2/_catalog
9、pull 到本地并运行
先掉对应的镜像
docker rmi -f 172.27.15.166:5000/ubuntu-ifconfig
docker rmi -f ubuntu-ifconfig:1.2
然后拉取 私有仓库镜像
docker pull ip:端口/镜像: Tag
docker pull 172.27.15.166:5000/ubuntu-ifconfig:1.2