docker发布镜像到阿里云与私服
一 准备镜像
1.1 下载初始镜像
1.2 创建容器
1.3 查看是否有这两个指令
1.4 安装缺失指令
# 更新包管理工具,类似于centos的yum
apt-get update
# 安装vim
apt install vim
# 安装网络工具
apt install net-tools
#
安装完之后可以正常使用
1.5 生成新的镜像
# -m是信息说明,-a是作者,后面接着是容器ID,打包之后的镜像名称及版本
docker commit -m="add vim and net-tools" -a="czh" 35682e3af465 mystery_ubuntu:1.1
1.6 运行测试新的镜像
# 注:这里操作失误了,重新commit了一次,所以生成的镜像id和上面的不一样
docker run -it 新生成的镜像id bash
二 上传镜像到阿里云
2.1 进入阿里云官网
https://promotion.aliyun.com/ntms/act/kubernetes.html
2.2 在控制台找到容器镜像服务
2.3 选择个人实例
2.4 创建命名空间
2.5 创建仓库
2.6 获取刚创建的仓库脚本
2.7 上传下载
可以在2.6中找到自己的所有指令
2.7.1 登录阿里云
2.7.2 标记并推送
2.7.3 下载阿里云镜像并测试
先停止已经启动的相关容器,删除本地镜像,从阿里云拉取镜像
运行测试,安装的vim工具以及net-tools工具正常,且编写的a.txt也在
三 上传镜像到私服
3.1 下载镜像Docker Registry
docker pull registry
3.2 运行私有库Registry
相当于本地有个私有Docker hub
docker run -d -p 5000:5000 -v /usr/local/repository/myregistry/:/tmp/registry --privileged=true registry
3.3 准备个新的ubuntu镜像
步骤和前面的阿里云镜像步骤一样,这里的镜像只在原来的基础上添加vim和b.txt,不添加net-tools
# 准备完成之后,生成新的镜像
# 公式:
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
# 命令:在容器外执行
docker commit -m="add vim" -a="czh" 容器ID mystery_ubuntu:1.3
3.4 验证
3.5 查看registry私服镜像1
# 查看私服有哪些镜像
curl -XGET http://私服IP地址:5000/v2/_catalog
3.6 将新镜像zzyyubuntu:1.2修改符合私服规范的Tag
按照公式:
docker tag 镜像:Tag Host:Port/Repository:Tag
自己host主机IP地址
使用命令
docker tag 将mystery_ubuntu:1.3 这个镜像修改为localhost:5000/mystery_ubuntu:1.3
3.7 修改配置文件使之支持http
vim /etc/docker/daemon.json
# 添加如下配置,注意逗号
"insecure-registries": ["替换成docker私服地址:5000"]
3.8 推送到私服
docker push 私服ip:5000/mystery_ubuntu:1.3
3.9 查看registry私服镜像2
# 查看私服有哪些镜像
curl -XGET http://私服IP地址:5000/v2/_catalog
3.10 pull到本地并运行
拉取之前先删除本地镜像(需要强制删除)
docker pull 私服IP:5000/mystery_ubuntu:1.3
3.11 运行拉取下来的镜像检查vim和b.txt
docker run -it 镜像ID /bin/bash