本地镜像发布到私有库流程

是什么

1、官方DockerHub地址:https://hubdockercom/.中国大陆访问太慢 且准备被阿里云取代的趋势,不太主流。
2、Dockerhub、阿里云这样的公共镜像仓库可能不太方便涉及机密的公司不可能提供镜像给公网。所以需要创建一个本地私人仓库供给团队使用,基于公司内部项目构建镜像。
DockerRegistry是官方提供的工具,可以用于构建私有镜像仓库

将本地镜像推送到私有仓库

1、下载镜像Docker Registry

docker pull 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命令

截屏2022-01-10 下午10.46.00.png

安装ifconfig 命令,并测试通过

apt-get update
apt-get install net-tools
截屏2022-01-10 下午10.49.37.png

通过commit新的镜像

db5b9e4f573d :对应的容器ID
docker commit -m=”ifconfig add cmd” -a=”ljx” db5b9e4f573d ubuntu-ifconfig:1.2
执行之后存在一个 ubuntu-ifconfig 的镜像
截屏2022-01-10 下午10.54.27.png

启动新镜像与原来的对比

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
截屏2022-01-10 下午11.07.47.png

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
截屏2022-01-10 下午11.14.21.png

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 格式,添加处须有逗号 “,”
截屏2022-01-10 下午11.23.22.png

修改后不生效,建议重启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
截屏2022-01-10 下午11.33.30.png

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