docker k8s

Docker

docker到底与一般的虚拟机有什么不同呢?
我们知道一般的linux系统即GNU/Linux系统包括两个部分,linux系统内核+GNU提供的大量自由软件,而centos就是众多GNU/Linux系统中的一个。
虚拟机会在宿主机上虚拟出一个完整的操作系统与宿主机完全隔离,是一个重量级的系统,而doker利用linux系统的namespace等特性使用宿主机的内核+自己的GNU外壳虚拟出一个轻量级的linux系统,也能实现与宿主机的隔离。所以,我们使用docker pull下来的操作系统例如centos pull下来的只有GNU外壳,不包含linux内核,所以体积很小。
在这里插入图片描述

分层镜像

镜像分层的一大好处就是共享资源,例如有多个镜像都来自与同一个base镜像,那么在docker host值需要存储一份base镜像。内存中之需要加载一份host,即可为多个容器服务。即使多个容器共享一个base镜像,当某个容器修改了base镜像,如修改了/etc/下的配置文件,其他容器也不会受到影响,这就是容器的写时复制机制。
在这里插入图片描述
当容器启动后,一个新的可写层容器层被加载岛镜像的顶部,,所有对容器的修改动作,都只会发生在容器层,只有容器层是可写的,其余镜像层都是只读的。
在这里插入图片描述

文件操作说明
添加文件在容器中创建文件是,新文件会被添加到容器层
读取文件在容器中读取某个文件时,Dokcer会自上而下依次再各镜像中查找此文件,一旦找到,立即将其复制到容器层
修改文件在容器中修改已存在的文件时,Docker会自上而下依次在各镜像层中查找此文件,一旦找到,就会将其复制到容器层,然后修改
删除文件在容器中删除文件时,Docker也是从上往下依次在镜像层中查找此文件,找到后,会在容器层记录下此操作

基本概念

  • image:容器打包的镜像文件
  • container:容器运行实例
  • docker registry:镜像提交的远程仓库
  • xxx.tar:镜像导出的本地文件
  • dockerfile:构建镜像的命令行文件(类似shell脚本)

生命周期

docker生命周期

基本操作

dockerfile

主要组成部分:

  • 基础镜像信息 FROM centos
  • 制作镜像操作指令RUN yum install openssh-server -y
  • 容器启动时执行指令 CMD /bin/bash

基本指令:

  • FROM 基础镜像
  • MAINTAINER 维护者信息
  • RUN 构建容器时执行的命令
  • ADD 从宿主机copy文件给容器,会自动解压
  • COPY 作用和ADD一样,无自动解压
  • WORKDIR 设置shell窗口的当前工作目录
  • VOLUME 将容器某些文件目录挂载在宿主机的目录位置(保证该目录下文件存储在宿主机而不是容器)
  • EXPOSE对外暴露的端口
  • CMD 容器启动之后要干的事
  • ENTRYPOINT 类似与CMD,但是和CMD不同的是,docker run 容器 后面的的参数可以追加在ENTRPOINT后面,而如果使用CMD的话,则会完全覆盖CMD,因此,一般使用ENTRYPOINT来设置固定的命令,而在docker run命令中追加可变的参数

容器

使用

docker run ${image} 

来运行容器,使容器处于前台运行状态,但是如果容器内什么事情也没有做,会自动退出。
如:

daitian@DaiT-Home:~$ docker run centos
daitian@DaiT-Home:~$ docker ps -a | grep centos
b62dde459b45   centos    "/bin/bash"              4 minutes ago   Exited (0) 4 minutes ago                                       objective_darwin
14193bbb3f25   centos    "/bin/bash"              7 hours ago     Exited (127) 7 hours ago                                       friendly_euler

可以看出容器直接exited。
但是像nginx这种,会直接将服务运行在前台

daitian@DaiT-Home:~$ docker run nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2023/05/14 10:53:00 [notice] 1#1: using the "epoll" event method
2023/05/14 10:53:00 [notice] 1#1: nginx/1.23.4
2023/05/14 10:53:00 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
2023/05/14 10:53:00 [notice] 1#1: OS: Linux 5.15.79.1-microsoft-standard-WSL2
2023/05/14 10:53:00 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/05/14 10:53:00 [notice] 1#1: start worker processes
2023/05/14 10:53:00 [notice] 1#1: start worker process 29
2023/05/14 10:53:00 [notice] 1#1: start worker process 30
2023/05/14 10:53:00 [notice] 1#1: start worker process 31
2023/05/14 10:53:00 [notice] 1#1: start worker process 32
2023/05/14 10:53:00 [notice] 1#1: start worker process 33
2023/05/14 10:53:00 [notice] 1#1: start worker process 34
2023/05/14 10:53:00 [notice] 1#1: start worker process 35
2023/05/14 10:53:00 [notice] 1#1: start worker process 36
2023/05/14 10:53:00 [notice] 1#1: start worker process 37
2023/05/14 10:53:00 [notice] 1#1: start worker process 38
2023/05/14 10:53:00 [notice] 1#1: start worker process 39
2023/05/14 10:53:00 [notice] 1#1: start worker process 40
2023/05/14 10:53:00 [notice] 1#1: start worker process 41
2023/05/14 10:53:00 [notice] 1#1: start worker process 42
2023/05/14 10:53:00 [notice] 1#1: start worker process 43
2023/05/14 10:53:00 [notice] 1#1: start worker process 44
2023/05/14 10:53:00 [notice] 1#1: start worker process 45
2023/05/14 10:53:00 [notice] 1#1: start worker process 46
2023/05/14 10:53:00 [notice] 1#1: start worker process 47
2023/05/14 10:53:00 [notice] 1#1: start worker process 48

使用exec进入正在运行的容器

docker exec ${容器名称} command(ex:bash) tips:直接用root用户进入容器
docker exec -ti --user root {容器名} /bin/bash 

K8s

容器化时代,容器大规模部署,导致其难以维护,因此出现了k8s

  • 基于容器对应用的发布管理,更新,升级,降级
  • 负载均衡,服务发现
  • 跨机器,跨地区的网络模式
  • 自动扩缩容功能
  • 针对如nginx无状态服务的运行组件,如mysql等有状态服务的运行组件
  • 支持丰富的插件

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

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

相关文章

在 3ds Max 中对链模型进行摆放姿势处理

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 建模和“摆姿势”3D链可能看起来是一项繁琐的工作,但实际上可以通过使用阵列工具并将链中的链接视为骨骼来轻松完成。在本教程中,我将向您展示如何对链条进行建模,并通过…

程序员的自我修养(4)

可执行文件的装载与进程 代码经过预编译,编译,汇编,链接过程后生成可执行文件,但可执行文件只有装载到内存程序才可以运行,这节讲可执行文件在linux下的装载过程,以及与进程的关系等等。 1.程序与进程的关…

oled拼接屏在柳州的户外广告中有哪些应用展现?

柳州oled拼接屏是一种高端的显示屏,它采用了OLED技术,具有高亮度、高对比度、高色彩饱和度、高刷新率等优点,能够呈现出更加真实、清晰、细腻的图像效果。 同时,柳州oled拼接屏还具有拼接功能,可以将多个屏幕拼接在一…

vue element select下拉框回显展示数字

vue element select下拉框回显展示数字 问题截图&#xff1a; 下拉框显示数字可以从数据类型来分析错误&#xff0c;接收的数据类型是字符串&#xff0c;但是value是数字类型 <el-form-item prop"classifyLabelId" :label"$t(item.classifyLabelId)"…

GUI-Menu菜单实例

运行代码&#xff1a; //GUI-Menu菜单实例 #include"std_lib_facilities.h" #include"GUI/Simple_window.h" #include"GUI/GUI.h" #include"GUI/Graph.h" #include"GUI/Point.h"struct Lines_window :Window {Lines_window…

常见的网络攻击

​ 1.僵木蠕毒 攻击业内习惯把僵尸网络、木马、蠕虫、感染型病毒合称为僵木蠕毒。从攻击路径来看&#xff0c;蠕虫和感染型病毒通过自身的能力进行主动传播&#xff0c;木马则需要渠道来进行投放&#xff0c;而由后门木马&#xff08;部分具备蠕虫或感染传播能力&#xff09;构…

Mybatis架构简介

文章目录 1.整体架构图2. 基础支撑层2.1 类型转换模块2.2 日志模块2.3 反射工具模块2.4 Binding 模块2.5 数据源模块2.6缓存模块2.7 解析器模块2.8 事务管理模块3. 核心处理层3.1 配置解析3.2 SQL 解析与 scripting 模块3.3 SQL 执行3.4 插件4. 接口层1.整体架构图 MyBatis 分…

智能优化算法——灰狼优化算法(PythonMatlab实现)

目录 1 灰狼优化算法基本思想 2 灰狼捕食猎物过程 2.1 社会等级分层 2.2 包围猎物 2.3 狩猎 2.4 攻击猎物 2.5 寻找猎物 3 实现步骤及程序框图 3.1 步骤 3.2 程序框图 4 Python代码实现 5 Matlab实现 1 灰狼优化算法基本思想 灰狼优化算法是一种群智能优化算法&#xff0c;它的…

ChatGPT:探索人工智能语言模型的前沿技术

一、ChatGPT的背景和原理 ChatGPT是由OpenAI开发的基于GPT-3.5架构的语言模型。它通过大规模的预训练和微调过程&#xff0c;学习了海量的文本数据&#xff0c;并能够生成连贯、有逻辑的回答。ChatGPT使用了自注意力机制和深度神经网络&#xff0c;能够对上下文进行理解和生成有…

C++学习笔记1

Hello World程序的组成部分 可以分为两部分&#xff1a; &#xff08;1&#xff09;以#开头的是预处理器编译指令 &#xff08;2&#xff09;int main() 开头的是程序的主体 预处理编译指令#include 定义&#xff1a;预处理器是一个在编译前运行的工具 #include 是让预处理器获…

java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…

linux shell脚本操作日期记录

最近碰到个需求&#xff0c;按日导出每日的数据&#xff0c;然后导入另一个数据库。需要写个日期相关的脚本。这里总结下 #!/bin/bashfunction dateFunc(){echo "从${2}到${3}" nextdate -d "$2" %sstart${2}e…

mysql取24小时数据

MySQL是一种常用的关系型数据库管理系统。在进行实时数据处理时&#xff0c;我们常常需要查询最近24小时的数据来进行分析和处理。下面我们将介绍如何使用MySQL查询最近24小时的数据。 SELECT * FROM table_name WHERE timestamp_column > DATE_SUB(NOW(), INTERVAL 24 HOU…

cocos creator Richtext点击事件

组件如图 添加ts自定义脚本&#xff0c;定义onClickFunc点击方法&#xff1a; import { Component, _decorator} from "cc";const { ccclass } _decorator; ccclass(RichTextComponent) export class RichTextComponent extends Component{public onClickFunc(even…

二十七、数据可视化

一、数据可视化是什么 借助图形来清晰有效表达信息的方式成为可视化&#xff0c;可视化可以帮助我们更好地传递信息。 二、数据可视化的基本流程 1、整理数据 数据可视化的基础还是数据&#xff0c;要将数据图表化&#xff0c;首先要整理数据&#xff0c;明确要把哪些数据图…

ffmpeg分离左右声道到多音轨

早期的视频文件将多语言放在了左右声道&#xff0c;手机上播放时&#xff0c;很多播放器并没有切换声道的功能&#xff0c;所以需要做分离 导出单声道视频 ffmpeg -i 01.rmvb -c:v h264 -af pan"stereo| c0FR | c1FR" -acodec aac 01.mp4 这里的FR是右声道&#x…

C++入门学习(2)

思维导图&#xff1a; 一&#xff0c;缺省参数 如何理解缺省参数呢&#xff1f;简单来说&#xff0c;缺省参数就是一个会找备胎的参数&#xff01;为什么这样子说呢&#xff1f;来看一个缺省参数就知道了&#xff01;代码如下&#xff1a; #include<iostream> using std…

【个人笔记】linux命令之ls

目录 Linux中一切皆文件ls命令常用参数常用命令lscpu lspci Linux中一切皆文件 理解参考&#xff1a;为什么说&#xff1a;Linux中一切皆文件&#xff1f; ls命令 ls&#xff08;英文全拼&#xff1a; list directory contents&#xff09;命令用于显示指定工作目录下之内容…

实现大文件传输的几种方法,并实现不同电脑间大文件传输

随着网络技术的快速发展&#xff0c;大文件的传输需求越来越多&#xff0c;如何在不同的电脑之间实现大文件的快速传输&#xff0c;是一个挑战&#xff0c;下面介绍几种常用的方法可以解决这个问题。 1、利用局域网传输&#xff1a;把两台电脑接入同一个网络环境&#xff0c;通…

每天一道大厂SQL题【Day27】脉脉真题实战(三)连续两天活跃用户

文章目录 每天一道大厂SQL题【Day27】脉脉真题实战(三)连续两天活跃用户每日语录第26题 中级题: 活跃时长的均值1. 需求列表思路分析 答案获取加技术群讨论附表文末SQL小技巧 后记 每天一道大厂SQL题【Day27】脉脉真题实战(三)连续两天活跃用户 大家好&#xff0c;我是Maynor。…