容器与K8s

news2025/1/9 17:05:11

一、容器

容器 vs 虚拟机

二、Docker容器使用 

三个概念:

2.1 镜像

        Docker镜像除了运行程序也打包了程序运行环境。

2.2 镜像仓库

        存放镜像的仓库,需要login之后拉去响应的镜像。

2.3 容器

        基于Docker镜像创建的linux容器,本质是宿主机上的一个进程,与其他资源隔离。

图2 Docker容器典型使用流程

  1. 首先开发者在开发环境机器上开发应用并制作镜像。

    Docker执行命令,构建镜像并存储在机器上。

  2. 开发者发送上传镜像命令。

    Docker收到命令后,将本地镜像上传到镜像仓库。

  3. 开发者向生产环境机器发送运行镜像命令。

    生产环境机器收到命令后,Docker会从镜像仓库拉取镜像到机器上,基于镜像运行容器。

三、使用示例

使用Docker将基于Nginx镜像打包一个容器镜像,基于容器镜像运行应用,推送到容器镜像仓库。

3.1 安装Docker

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
systemctl restart docker

3.2 Docker打包镜像

# 使用官方提供的Nginx镜像作为基础镜像
FROM nginx:alpine

# 执行一条命令修改Nginx镜像index.html的内容
RUN echo "hello world" > /usr/share/nginx/html/index.html

# 允许外界访问容器的80端口
EXPOSE 80

执行docker build命令打包镜像。

docker build -t hello .

其中-t表示给镜像加一个标签,也就是给镜像取名,这里镜像名为hello。. 表示在当前目录下执行该打包命令。

执行docker images命令查看镜像,可以看到hello镜像已经创建成功。您还可以看到一个Nginx镜像,这个镜像是从镜像仓库下载下来的,作为hello镜像的基础镜像使用。

3.3 本地运行容器镜像

# docker run -p 8080:80 hello

docker run命令启动一个容器,命令中-p(端口映射)本地机器的8080端口映射到容器的80端口,即本地机器的8080端口的流量会映射到容器的80端口,当您在本地机器访问http://127.0.0.1:8080时,就会访问到容器中,此时浏览器中返回的内容应该就是“hello world”。

3.4 把镜像推送到镜像仓库

        登录需要先login到镜像仓库,然后给镜像换一个名字。

# docker tag hello swr.cn-east-3.myhuaweicloud.com/container/hello:v1
  • swr.cn-east-3.myhuaweicloud.com是仓库地址,每个区域的地址不同。
  • container是组织名,组织一般在SWR中创建,如果没有创建则首次上传的时候会自动创建,组织名在单个区域内全局唯一,需要选择合适的组织名称。
  • v1则是hello镜像分配的版本号

**********想给本地镜像打tag,可以不带仓库地址;如果要想推送到仓库,就必须带仓库地址,因为后面的docker push 命令,会默认把第一个斜线前面的内容当做仓库,如果没有仓库地址,会带上默认的仓库地址,类似 “https://index.docker.io/v1” ,后果是这个地址要么不通,要么你上传到错误地方**********

3.5 推送到镜像仓库

   执行docker push命令就可以将镜像上传到SWR。docker push <仓库地址>/<镜像名称>:<标签>

# docker push swr.cn-east-3.myhuaweicloud.com/container/hello:v1

当需要使用该镜像时,使用docker pull命令拉取(下载)该命令即可。

# docker pull swr.cn-east-3.myhuaweicloud.com/container/hello:v1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1393791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!

拦截器 1.1 拦截器概念1.2 拦截器入门案例1.2.1 环境准备1.2.2 拦截器开发步骤1:创建拦截器类步骤2:配置拦截器类步骤3:SpringMVC添加SpringMvcSupport包扫描步骤4:运行程序测试步骤5:修改拦截器拦截规则步骤6:简化SpringMvcSupport的编写 1.3 拦截器参数1.3.1 前置处理方法1.3…

【python】学习笔记01

一、基础语法 1. 字面量 - 什么是字面量&#xff1f; 在代码中&#xff0c;被写下来的的固定的值&#xff0c;称之为字面量。 - 常用的值类型 Python中常用的有6种值&#xff08;数据&#xff09;的类型。 666 13.14 "程序员"print(666) print(13.14) print(&qu…

深入解析JavaScript的原生原型

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 在JavaScript中,除了自定义对象,还存在很多由JavaScript语言本身提供…

【分布式技术】分布式存储ceph之RGW接口

目录 1、对象存储概念 2、创建 RGW 接口 //在管理节点创建一个 RGW 守护进程 #创建成功后默认情况下会自动创建一系列用于 RGW 的存储池 #默认情况下 RGW 监听 7480 号端口 //开启 httphttps &#xff0c;更改监听端口 #更改监听端口 ​ //创建 RadosGW 账户 …

鸿蒙OS4.0兼容性测试

背景 OpenHarmony兼容性测评主要是验证合作伙伴的设备和业务应用满足OpenHarmony开源兼容性定义的技术要求&#xff0c;确保运行在OpenHarmony上的设备和业务应用能稳定、正常运行&#xff0c;同时使用OpenHarmony的设备和业务应用有一致性的接口和业务体验。 OpenHarmony兼容…

cesium内部相同坐标在不同高度的2个点的属性机制坐标会gltf模型角度值异常问题mars3d的处理办法

模型一直向上运动的正常效果&#xff1a; 问题场景&#xff1a; 1.new mars3d.graphic.ModelPrimitive({使用addDynamicPosition(设置并添加动画轨迹位置&#xff0c;按“指定时间”运动到达“指定位置”时发现&#xff0c;如果是同一个点位不同高度值的y轴竖直向上方向的运动…

2024年华数杯国际赛A题:放射性废水处理建模 思路模型代码解析

2024年华数杯国际赛A题&#xff1a;放射性废水处理建模&#xff08;Radioactive Wastewater from Japan&#xff09; 一、问题描述 2011年3月&#xff0c;日本东海岸发生了地震&#xff0c;引发了福岛第一核电站事故&#xff0c;导致三个核反应堆熔毁&#xff0c;并在一场巨大…

Verilog刷题笔记16

题目&#xff1a; Since digital circuits are composed of logic gates connected with wires, any circuit can be expressed as some combination of modules and assign statements. However, sometimes this is not the most convenient way to describe the circuit. Pro…

C# dataGridView 列的勾选框改变事件

dataGridView 增加一列 DataGridViewCheckBoxColumn 然后设置复选框值如下图&#xff1a; dataGridView增加两个事件 private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e){//提交改变&#xff0c;触发dataGridView1_CellValueChanged事件&…

【数学建模】2024年华数杯国际赛B题-光伏发电Photovoltaic Power 思路、代码、参考论文

1 问题背景 中国电力构成包括传统能源(如煤炭、石油、天然气)、可再生能源(如水电、风能、太阳能、核能)和其他形式的电力。这些发电模式在满足中国巨大的电力需求方面发挥着至关重要的作用。据最新数据显示&#xff0c;中国总发电量超过20万亿千瓦时&#xff0c;居世界第一。…

短信系统搭建主要因素|网页短信平台开发源码

短信系统搭建主要因素|网页短信平台开发源码 随着移动互联网的快速发展&#xff0c;短信系统已成为企业和个人进行信息传递的重要工具。建立一个高效可靠的短信系统对于企业来说非常重要。下面我们将介绍一些影响短信系统搭建的主要因素。 1. 平台选择&#xff1a;在搭建短信系…

嵌入式开发--STM32G4系列片上FLASH的读写

这个玩意吧&#xff0c;说起来很简单&#xff0c;就是几行代码的事&#xff0c;但楞是折腾了我大半天时间才搞定。原因后面说&#xff0c;先看代码吧&#xff1a; 读操作 读操作很简单&#xff0c;以32位方式读取的时候是这样的&#xff1a; data *(__IO uint32_t *)(0x080…

图片太模糊我们怎么提高清晰度呢

在数字时代&#xff0c;图片是我们日常生活中不可或缺的一部分。然而&#xff0c;有时候由于各种原因&#xff0c;我们得到的图片清晰度可能并不理想。这篇文章将介绍三款软件&#xff0c;帮助你提高图片的清晰度&#xff0c;让你的图片更加生动、清晰。 一、水印云 水印云是…

Qt网络通信

1. UDP通信 1.1 udp通信的基本流程 创建套接字 绑定套接字 进行通信 关闭套接字 涉及到的类和信号 QUdpSocket&#xff1a;Udp套接字类&#xff0c;类对象就是一个udp套接字对象 QHostAddress&#xff1a;ip地址类 void readyRead()&#xff1a;信号&#xff0c;当有数据到达可…

码住!软件测试人员的基本有哪些?

在软件测试领域&#xff0c;许多人误以为软件测试只是简单的点点鼠标、看看屏幕就能完成。然而&#xff0c;软件测试的复杂性远不止于此。作为一名软件测试人员&#xff0c;你需要具备多项技能和素质来保证测试的有效性和质量。 打字技能可以事半功倍 打字是软件测试人员必备的…

2024年网络安全比赛--内存取证(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.从内存文件中找到异常程序的进程&#xff0c;将进程的名称作为Flag值提交&#xff1b; 2.从内存文件中找到黑客将异常程序迁移后的进程编号&#xff0c;将迁移后的进程编号作为Flag值…

能做鬼脸、摇滚、自拍,听懂你说的话!GPT-4驱动的实体机器人

东京大学的研究人员将GPT-4模型&#xff0c;集成在实体机器人Alter3中&#xff0c;可将文本、语言直接转化成机器人动作&#xff0c;例如&#xff0c;做一个自拍动作&#xff1b;装一个“鬼样”&#xff1b;做一个摇滚音乐动作等&#xff0c;就连微笑、眨眼这样的面部表情动作也…

IOS-UIAlertController简单使用-Swift

UIAlertControlle时IOS的对话框控制器&#xff08;警报控制器&#xff09;&#xff0c;简单使用方法如下&#xff1a; 步骤都一样&#xff0c;先是创建UIAlertController&#xff0c;然后创建UIAlertAction&#xff0c;再将UIAlertAction添加到UIAlertController中&#xff0c;…

SpringBoot项目中添加证书授权认证

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、项目场景二、方案思路三、实施流程1.引入库2.编写代码 四、拓展 一、项目场景 在上线的项目中&#xff0c;需要添加一个定时授权的功能&#xff0c;对系统的进…

Springboot 子工程构建完后无法找到springboot依赖

问题: 构建完子工程后无法找到SpringBootTest 解决方案: 最好用这个构建 https://www.cnblogs.com/he-wen/p/16735239.html 1.先观察项目目录 是否正确 2.观察子工程目录 3.看pom.xml中是否引用springboot依赖 4.检查代码 查看父项目是否包含子模块 查看子模块的父项目是否…