Docker Registry
Docker Registry是官方提供的工具,可以用于构建私有镜像仓库。
docker pull registry
相当于本地有个私有的Docker hub
默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便与宿主机联调
docker run -d -p 5000:5000 -v /fanhe/myregistry/:/tmp/registry --privileged=true registry
演示创建一个新镜像,ubuntu安装ifconfig命令
前提条件:从Hub上下载ubuntu镜像到本地并成功运行
原始的默认ubuntu镜像是不带着ifconfig命令的
docker run -it ubuntu /bin/bash
vim a.txt
ifconfig
# 先更新包管理工具
apt-get update
# 安装net-tools
apt-get -y install net-tools
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker run -it 容器ID /bin/bash
ifconfig
运行之后就带有ifconfig命令
curl http://192.168.100.134:5000/v2/_catalog
注:192.168.xxx.xxx是自己host主机的IP地址
docker tag 目标镜像名:[标签名] 宿主机IP:端口号/目标镜像名:[标签名]
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
docker push 192.168.100.134:5000/fanheubuntu:1.2
curl http://192.168.100.134:5000/v2/_catalog
docker rmi -f 宿主机IP:端口号/目标镜像名:[标签名]
docker pull 宿主机IP:端口号/目标镜像名:[标签名]
docker run -it 宿主机IP:端口号/目标镜像名:[标签名] /bin/bash
由此可知,新拉取的镜像中拥有ifconfig命令