06-本地镜像发布到私有库

一、下载镜像Docker Registry

Docker Registry

Docker Registry是官方提供的工具,可以用于构建私有镜像仓库。

docker pull registry

06-本地镜像发布到私有库_第1张图片

二、运行私有库Registry

相当于本地有个私有的Docker hub

默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便与宿主机联调

启动Docker Registry

docker run -d -p 5000:5000 -v /fanhe/myregistry/:/tmp/registry --privileged=true registry

三、案例演示

演示创建一个新镜像,ubuntu安装ifconfig命令

前提条件:从Hub上下载ubuntu镜像到本地并成功运行

原始的默认ubuntu镜像是不带着ifconfig命令的

1、没有ifconfig命令

docker run -it ubuntu /bin/bash
vim a.txt
ifconfig

06-本地镜像发布到私有库_第2张图片

2、外网连通的情况下,安装ifconfig

# 先更新包管理工具
apt-get update
# 安装net-tools
apt-get -y install net-tools

06-本地镜像发布到私有库_第3张图片

3、安装完成后,commit新镜像

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

06-本地镜像发布到私有库_第4张图片

4、启动新镜像并与原来的镜像对比

docker run -it 容器ID /bin/bash
ifconfig

06-本地镜像发布到私有库_第5张图片

运行之后就带有ifconfig命令 

5、curl验证私服库上有什么镜像

curl http://192.168.100.134:5000/v2/_catalog

 注:192.168.xxx.xxx是自己host主机的IP地址 

6、将新镜像fanheubuntu:1.2修改符合私服规范的Tag

docker tag 目标镜像名:[标签名] 宿主机IP:端口号/目标镜像名:[标签名]

06-本地镜像发布到私有库_第6张图片

7、修改配置文件使之支持http

docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。

修改/etc/docker/daemon.json,添加insecure-registries允许http

vim /etc/docker/daemon.json
{
    "registry-mirros": ["https://xxxx.mirror.aliyuncs.com"],
    "insecure-registries": ["192.168.100.134:5000"]
}

注:192.168.100.134是自己host主机的IP地址  

registry-mirrors配置的是国内阿里提供的镜像加速地址,不用加速的话访问官网的会很慢
2个配置中间有个“逗号”,别漏了,这个配置是json格式的。

修改完后如果不生效,建议重启docker

systemctl restart docker

重启docker之后需要重新运行私有仓库

docker run -d -p 5000:5000 -v /fanhe/myregistry/:/tmp/registry --privileged=true registry

 8、push推送到私有仓库

docker push 192.168.100.134:5000/fanheubuntu:1.2

06-本地镜像发布到私有库_第7张图片

9、curl验证本地私有仓库上有什么镜像

curl http://192.168.100.134:5000/v2/_catalog

10、从本地私有仓库pull到并运行

  • 在本地删除原镜像
docker rmi -f 宿主机IP:端口号/目标镜像名:[标签名]

06-本地镜像发布到私有库_第8张图片

  • 从私有仓库中拉取镜像
docker pull 宿主机IP:端口号/目标镜像名:[标签名]

06-本地镜像发布到私有库_第9张图片

  • 从私有仓库拉取的镜像运行成容器
docker run -it 宿主机IP:端口号/目标镜像名:[标签名] /bin/bash

06-本地镜像发布到私有库_第10张图片

由此可知,新拉取的镜像中拥有ifconfig命令

你可能感兴趣的:(docker,linux,运维,docker,容器)