【微服务实战之Docker容器】第三章-镜像仓库
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
系列文章目录
文章目录
Docker镜像提交
- docker commit提交容器副本使之成为一个新的镜像
- docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
- 案例演示ubuntu安装vim
- 从Hub上下载ubuntu镜像到本地并成功运行
- 原始的默认Ubuntu镜像是不带着vim命令的
- 外网连通的情况下安装vim
- apt-get update
- apt-get -y install vim
- 安装完成后commit我们自己的新镜像
- docker commit -m=“安装了vim的镜像” -a=“hahaz” 容器ID test333/mytestu:1.0
- 查看images发现我们自己提交的unbutu172M比拉取的多了。
- 运行起来自带vim
本地镜像发布到阿里云
- 进入阿里云开发者平台。
https://promotion.aliyun.com/ntms/act/kubernetes.html - 创建仓库镜像
选择控制台进入容器镜像服务–>选择个人实例–>命名空间–>创建命名空间(comleadertest)–>镜像仓库–>创建仓库–>输入信息–>代码源选择本地仓库–>点击创建仓库
我们要推送镜像到阿里中心仓库使用给出的以下命令即可
仓库镜像–> 管理即可获取到对应脚本
先使用自己的账号登录阿里云对应的是第一条命令
绑定本地镜像标签对应第二条命令
推送
推送成功
阿里云镜像下载到本地使用
先删除本地的镜像
查看镜像ID
docker images
根据ID删除镜像
docker rmi -f e31d10b7fc81
拉取阿里云镜像和上传一样提供的也有脚本
拉取
本地镜像发布到私有库
- 搭建本地私有的仓库中心
docker pull registry
默认情况仓库被创建在容器的/var/lib/registry目录下建议自行用容器卷映射方便于宿主机联调
docker run -d -p 5000:5000 -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry
启动下载过的ubuntu镜像
docker run -it ubuntu /bin/bash
进入到了docker内的ubuntu命令行界面更新apt-get
apt-get update
下载安装ifconfig默认的最小镜像是不带的
apt-get install net-tools
安装完成后ifconfig已经能够使用
接下来ctrl+p+q退出容器
执行命令将容器生成新的镜像添加导本地镜像中
docker commit -m="ifconfig cmd add" -a="zzyy" a69d7c825c4f zzyyubuntu:1.2
把刚才的ubuntu关掉然后启动我们的新的镜像检查ifconfig命令是否可以正常使用
docker stop 6432d7887553
docker run -it d4338649e7e9 /bin/bash
- curl验证私服库上有什么镜像
curl -XGET http://192.168.248.128:5000/v2/_catalog
可以看到目前私服库没有任何镜像上传过。。。。。。
3. 将新镜像zzyyubuntu:1.2修改符合私服规范的Tag
(给镜像打标签可以理解为git中的将本地仓库和远程仓库相关联后边使用push命令就可以推送了)
按照公式 docker tag 镜像:Tag Host:Port/Repository:Tag
docker tag zzyyubuntu:1.2 192.168.248.128:5000/zzyyubuntu:1.2
4. 修改配置文件使私服支持http
私服一般做了安全加固默认不支持http形式的推送修改配置取消这个限制
vim /etc/docker/daemon.json
注意配置是json格式添加时要有一个逗号
,
"insecure-registries": ["192.168.248.128:5000"]
修改完配置后重启docker
systemctl restart docker
重启docker后需要重启私服镜像
docker run -d -p 5000:5000 -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry
- 将镜像推送到远程仓库
docker push 192.168.248.128:5000/zzyyubuntu:1.2
验证是否推送成功
curl -XGET http://192.168.248.128:5000/v2/_c
6. 从私服拉取到本地执行
先把本地的镜像删除(把两个都删除)
docker rmi -f 192.168.248.128:5000/zzyyubuntu:1.2
docker rmi -f zzyyubuntu:1.2
删完之后检查下
然后从私服仓库重新拉取
docker pull 192.168.248.128:5000/zzyyubuntu:1.2
重新运行拉取的镜像测试下ifconfig发现成功啦。
O(∩_∩)O
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |