当前位置: 首页 > news >正文

Docker(4)Docker镜像

文章目录

  • 镜像是什么
    • 是什么
    • UnionFS(联合文件系统)
  • 重点理解
  • Docker镜像commit操作
  • 上传到公有仓库
    • 镜像仓库的创建
    • 上传命令
    • 拉取测试
  • 私有仓库 Docker Registry

镜像是什么

是什么

是一种轻量级、可执行的独立软件包,它包含运行某个软件的所需的所有内容,
我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),
这个打包好的运行环境就是image镜像文件。

UnionFS(联合文件系统)

UnionFS(联合文件系统):是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加
同时可以将不同目录挂在到同一个虚拟文件系统下。Union文件系统是Docker镜像的基础。镜像可以通过分层来集成,可以制作各种具体的应用镜像。

一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终形成一个对外暴露的服务实体。

重点理解

Docker镜像层都是只读的,容器层是可写的
当容器启动时,一个新的可写层被加载到镜像的顶部
这一层通常被称作"容器层",“容器层"之下的都叫"镜像层”

Docker镜像commit操作

官方的ubuntu镜像无法执行vim命令的,我们来升级一波

# 启动乌班图
docker run -it --name=ubuntu ubuntu bash

# 如果已经启动过了直接进入我们启动好的乌班图
docker exec -it ubuntu bash

# 下载vim 
apt-get update
apt-get -y install vim

# ok 到这为止vim已经可以使用了

# commit容器
# docker commit -m='提交描述' -a="作者" 容器id或者容器名 容器名:版本号
docker commit -m='add vim cmd' -a="gtd" ubuntu gtd/ubuntu:1.0.1

上传到公有仓库

镜像仓库的创建

进入地址进行创建

阿里地址

如果实例还没有创建可以看这篇

Docker(2)Docker安装和加速器配置

进入后点击目录阿里云镜像加速 创建个人实例就可

命名空间创建

创建镜像仓库
在这里插入图片描述

点击之后填入范例
在这里插入图片描述

下一步后选择本地仓库

上传命令

点击创建后就会进入仓库实例,以下代码直接阿里云网站就可。每个人和每个人的代码都不一样

# docker登录
docker login --username=[] registry.cn-hangzhou.aliyuncs.com

# 拉取
docker pull registry.cn-hangzhou.aliyuncs.com/username/myubuntu2:[镜像版本号]

# 推送
docker push registry.cn-hangzhou.aliyuncs.com/username/myubuntu2:[镜像版本号]

# 完整的推送流程 直接复制阿里云的代码不用敲 改参数就可以记得去掉[]
docker login --username=[] registry.cn-hangzhou.aliyuncs.com
# ImageId 和 镜像版本号 通过命令 docker images 获取
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/username/myubuntu2:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/username/myubuntu2:[镜像版本号]


拉取测试

测试是否成功

# 删除原先镜像
docker rmi -f imageID

# 拉取 从阿里云复制
docker pull registry.cn-hangzhou.aliyuncs.com/username/myubuntu2:[镜像版本号]

# 跑
docker run -it ubuntu bash

私有仓库 Docker Registry

# 拉取registry镜像
docker pull registry

# 运行registry -v 本机位置:容器内位置
docker run -d -p 5000:5000 -v /usr/local/myregistry/:/usr/local/doregistry --privileged=true --name=registry registry

# 创建新的镜像
# 跑一个新的ubuntu
docker run -it --name=ubuntu ubuntu bash

# 给原始ubuntu 下载ifconfig
apt-get update
apt-get install net-tools

# commit容器
docker commit -m="ifconfig cmd add" -a="ttst" ubuntu ttstubuntu:1.1

# 查询私服库上有什么镜像
curl localhost:5000/v2/_catalog

# 改名(为了符合规范)
docker tag ttstubuntu:1.1 localhost:5000/ttstubuntu:1.1

# 修改docker配置
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"],
  "insecure-registries":["localhost:5000"]  # 设localhost:5000为安全
}

# push
docker push localhost:5000/ttstubuntu:1.1

# pull
docker pull localhost:5000/ttstubuntu:1.1

# 测试
docker images
# imageID 更具自己的来
docker run -it dfa28210cb46 bash

ifconfig

相关文章:

  • 同义词/近义词查询易语言代码
  • Python Tkinter 教程(四)—— 子模块 messagebox、colorchooser 以及 filedialog 的使用及技巧(万字详解)
  • C++画图 => 蓝桥杯青少组C++ => 信奥 学习路线图
  • 微信公众号的附件链接怎么弄
  • 概率论与梳理统计学习:随机变量(二)——知识总结与C语言案例实现
  • python学习—第一步—Python小白逆袭大神(第二天)
  • SAP ABAP ALV 的一些总结:Custom container 和 Splitter container
  • 由从零开始的神经网络理解torch的几个模块
  • R语言进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组独特值的个数(distinct)
  • Linux入门之使用 ifconfig 命令配置网络连接
  • Day 1 BUUCTF——特殊的 BASE64 1
  • 大数据分析案例-用RFM模型对客户价值分析(聚类)
  • Linux入门之管理 Wi-Fi 连接
  • 结构体作业等
  • ARM架构种类
  • Angular 响应式表单之下拉框
  • C++类中的特殊成员函数
  • CSS实用技巧
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java教程_软件开发基础
  • MySQL数据库运维之数据恢复
  • vue-cli3搭建项目
  • 阿里研究院入选中国企业智库系统影响力榜
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 欢迎参加第二届中国游戏开发者大会
  • 码农张的Bug人生 - 见面之礼
  • 排序算法之--选择排序
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 无服务器化是企业 IT 架构的未来吗?
  • 原生 js 实现移动端 Touch 滑动反弹
  • FaaS 的简单实践
  • 大数据全解:定义、价值及挑战
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #pragma预处理命令
  • #微信小程序:微信小程序常见的配置传值
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (2)(2.10) LTM telemetry
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .md即markdown文件的基本常用编写语法
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET NPOI导出Excel详解
  • .NET Remoting学习笔记(三)信道
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .Net中wcf服务生成及调用
  • ::
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用