目录
一、Docker镜像
是什么:
是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件
只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)
分层的镜像:
以我们的pull为例,在下载的过程中我们可以看到docker的镜像好像是在一层一层的在下载
UnionFS(联合文件系统):
Docker镜像加载原理:
为什么 Docker 镜像要采用这种分层结构呢:
重点理解:
Docker镜像commit操作案例:
作用:docker commit提交容器副本使之成为一个新的镜像
命令:docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
案例演示ubuntu安装vim:
1. 从Hub上下载ubuntu镜像到本地并成功运行
2. 原始的默认Ubuntu镜像是不带着vim命令的
3. 外网连通的情况下,安装vim
4. 安装完成后,commit我们自己的新镜像
5. 启动我们的新镜像并和原来的对比
二、本地镜像发布到阿里云
本地镜像发布到阿里云流程:
将本地镜像推送到阿里云:
- 创建本地镜像
- 登录阿里云开发者平台:https://promotion.aliyun.com/ntms/act/kubernetes.html
- 创建仓库镜像:
1.选择控制台,进入容器镜像服务
2. 选择个人实例
3. 创建命名空间
4. 仓库名称
5. 进入管理界面获得脚本
4. 将镜像推送到阿里云:将镜像推送到阿里云registry
管理界面脚本:直接按照命令复制
脚本实例
5. 将阿里云上的镜像下载到本地:阿里云管理界面有对应的命令
三、本地镜像发布到私有库
本地镜像发布到私有库流程:
是什么?
将本地镜像推送到私有库:
1. 下载镜像Docker Registry
2. 运行私有库Registry,相当于本地有个私有Docker hub
3. 案例演示创建一个新镜像,ubuntu安装ifconfig命令:
下载ubuntu镜像到本地并成功运行
原始的Ubuntu镜像是不带着ifconfig命令的
外网连通的情况下,安装ifconfig命令并测试通过
安装完成后,commit我们自己的新镜像
公式:
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
命令:在容器外执行,记得
docker commit -m="ifconfig cmd add" -a="zzyy" a69d7c825c4f zzyyubuntu:1.2
启动我们的新镜像并和原来的对比
4. curl验证私服库上有什么镜像?
命令: curl -XGET http://linux主机ip:5000/v2/_catalog
5. 将新镜像zzyyubuntu:1.2修改符合私服规范的Tag:
按照公式: docker tag 镜像:Tag Host:Port/Repository:Tag
host是linux主机IP地址
使用命令 docker tag 将zzyyubuntu:1.2 这个镜像修改为192.168.111.162:5000/zzyyubuntu:1.2
6. 修改配置文件使之支持http:
vim命令新增如下红色内容:vim /etc/docker/daemon.json
"insecure-registries": ["192.168.111.162:5000"]
7. push推送到私服库
命令:docker push 步骤5修改以后的镜像名:1.2
8. curl验证私服库上有什么镜像?
命令: curl -XGET http://linux主机ip:5000/v2/_catalog
9. pull到本地并运行
docker pull 192.168.111.162:5000/zzyyubuntu:1.2
docker run -it 镜像ID /bin/bash