Docker容器技术实战1

1、docker容器

78d8f62c4b2447baa17e6adf1392ecf4.png

docker相当于传统的货运集装箱

虚拟机(Virtual Machine,VM)是一个完整的虚拟操作系统和硬件环境。它的工作原理是通过在一台物理主机上使用虚拟化软件来创建多个虚拟机实例,每个实例都可以运行独立的操作系统和应用程序。每个虚拟机都有自己的虚拟硬件和资源分配,并且可以在不同的物理服务器之间迁移。虚拟机提供了更高的隔离性安全性,适合于运行多个操作系统和复杂的应用程序环境。

Docker是一个轻量级的容器化平台,它使用操作系统层面的虚拟化技术,将应用程序及其依赖打包为一个可移植的容器,然后在主机的操作系统上运行。Docker容器共享主机操作系统的内核,因此比虚拟机更轻量级和高效。容器可以在不同的主机之间轻松部署和迁移,并且启动时间非常快速。Docker适合于部署单个应用程序或服务,并提供了更高的可伸缩性和性能

建立第一个docker容器

44081d932b9045d8b32e5dadee6d81af.png1cefec3119504ba09ca14c745814276f.png3490f3d40fa94f229c9217d66fff4bc6.png

安装docker-ce

b6bd4c195744468fa8604d1d5cc7d327.png

设置开机自启

ad193c38857f4cf192c26075c1db01e7.png

激活内核选项并重启服务

69ed316d6f9448b6ae6b830a92f5abd3.png8ba0783038bb46b1b73c8182f8222774.png

启动容器并查看已激活容器

ac826931d62946679b0bf22597272d03.png

访问

f3969697c41b45318da2c1ff52c27ab8.pngacfe52472d2442d08dd17e9fcbf71221.pnge9a9ccba965247a8a9b08d1aa013861b.pngc34181a0c93744f097691b20615652c4.png

2、docker镜像

3ded2de3c4e94b89ad356dd1b7779552.png

Docker镜像的分层结构是Docker的一个重要概念,它是Docker镜像的构建和管理的基础。Docker镜像的分层结构简单可以描述为以下三层:

(1)基础层:每个Docker镜像都由一个或多个基础层开始。基础层是只读的,包含了操作系统的文件系统和软件包.

(2)中间层:在基础层之上,可以有任意数量的中间层。中间层为镜像添加了文件、配置等内容,每一层都是镜像的一部分。

(3)顶层:最后一层是顶层,也被称为容器层。这是可写层,它使得Docker容器可以在只读的基础层上进行读写操作。当Docker容器运行时,任何对文件系统的更改都会被记录在这个层中。

分层结构的最大好处是层与层之间可以进行资源的共享,这种分层结构使得Docker镜像的创建、存储和传输都变得高效和灵活。.

b03b2f86a02d43dc80dfc0e8895adb50.png

存储所有镜像文件内容的目录(绝对不能随意删除)

afdfeccf3b594a5ba0d3116df7c2a6e3.png

镜像的构建

bcaa1121c78d41f2b36ae2ccf4104a37.png镜像层是只读的,修改的东西只保存在容器层,当保存的时候,容器层就会保存成新的镜像层,一个镜像最多127 层;

docker 从上往下会依次查找文件,这样修改的内容就会被优先读取到。

6e9b28d97cd34ab4a14a798517bbf33c.png744b8bfc6bd34e62ab310afb6f855728.pngaeb84dbebd5945998c7c6e7ff4d01c34.png

注:容器层是与容器生命周期保持一致的,删除容器时,容器层也会同步被删除。

19d15b99f29f45248c2d770bdb489c03.png

此种方法不利于安全审计

构建镜像

14f92b1210764f37bba7ba4f4c7ed6aa.png8c0fb2397872400baafbce3025cf6a7c.png

Dockerfile详解

75a5eb8ee0b34ea39e90c2ac2c4a7955.pngde81c127c0ef4577a3ec5074acec79d0.pngbc817cd2a42c49e1b81fec0783727e07.pnga1a8f994fcd74702a660a1b7f2e36787.png01424de70c894df8ab56952a6acdb296.pnge572e986364f45b0b03e5921b0571eee.png6ec3aa2e99324d6792a9c45fae1ca6b7.pngd15472c042bd443f9b5fcccb209d5e40.png8df9be0e12f649f0b654502e746f1430.png12bb732f716b41f0a80a7bae2f7d3aad.png相当于将命令集成使用

03403348d4374eb09cc7ae298567deec.pnge9626f39f2904166ba0ee61c37be9959.png90f60c3e89194b028d3006859594d819.png

自动删除所有已经被停止的容器

cc846fd111794e138ca84bb7072a7e59.png

查看容器详情

13b5a294d54c4513b17b9fc316b2d30e.png

数据卷挂载

4e510b37c37d4929a8139f2ba1a07d51.png

自动分配的IP

2b47e6d5443e47e4a4317312921db292.png

访问容器

c15af5052ff04f8bbdfefaf59cd51941.png

此地址无法使用外部浏览器进行访问,因为没有做端口映射,这是一个私有网段,无法从windows访问。

3、镜像的优化

50db183fed5543798bfab0d1847f48a9.png

缩减镜像层

51bfc02439b842838716e29b8b8b11e5.pngf678fce5540442e195457b48523ee180.png

缩减镜像层数,删除中间产物

38639944103747ec8242242740ffcd04.png2948244bdf6f4b0b8a11aec92aa8ec94.png

多阶段构建

969077df713442f78050d2e6c30785aa.png

导入基础镜像

0dd982ed830047ef9ea9307667344f21.png

nginx依赖库地址:nginx-distroless/Dockerfile at master · kyos0109/nginx-distroless · GitHub

拷贝依赖库

cbbd22a8c405471ba17678ebca7825fc.pngfd613d66c5f74f4eaf3a718424fcac82.png

依赖库有错误的情况:18286ccb8aef41ec999ff10c96ad5516.png

重新构建:0169825592f44adb9709809d02699acc.jpeg66cd4aa57ae74b37964ee7f287738073.jpeg

 

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

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

相关文章

华为eNSP配置专题-浮动路由及BFD的配置

文章目录 华为eNSP配置专题-浮动路由及BFD的配置0、参考文档1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、基本终端构成和连接2.2、基本终端配置 3、浮动路由配置3.1、浮动路由的基本配置3.2、浮动路由的负载均衡问题3.3、浮动路由的优先级调整 4、BFD的配置4.1…

二维码智慧门牌管理系统升级解决方案:突破传统,实现质检与抽检的个性化配置

文章目录 前言一、引入“独立质检”二、个性化抽检类别设定三、触发重采要素的功能升级四、升级优势与展望 前言 在数字化时代,智慧门牌管理系统已经成为社会管理的重要工具。为了满足各种复杂需求,系统升级是必然趋势。本次升级主要针对质检和抽检两大…

汽车屏类产品(四):仪表Cluster

###前言 仪表Cluster/仪表盘Dashboard,作为伴随汽车诞生就存在的一个主要零部件之一,从机械到电子到数字,可以说也是逐渐发展到现在的。 目前的主流框图如下,中间processor就是主控芯片,可能有buttons/switches,有display显示屏+backlight背光,有audio->speake…

最长上升子序列(二分)代码模板

用二分的思想求最长上升子序列的思想就是保持单调性,用一个q[]数组来作为一个单调数组。 每次将a[i]放进q数组中,但是要保持单调性,q数组的长度就是答案。 q[]数组中存的是所以以下标为长度的最长子序列的结尾的最小值。 理解q[]数组的意义…

【数据仓库】hadoop生态圈与数据仓库

文章目录 1.大数据定义2. Hadoop与数据仓库3. 关系数据库的可扩展性瓶颈4. CAP理论5. Hadoop数据仓库工具5.1. RDS和TDS5.2. 抽取过程5.3. 转换与装载过程5.4. 过程管理和自动化调度5.5.数据目录(或者称为元数据管理)5.6.查询引擎…

html表格标签

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--表格table 行 tr 列 td --> <table border"1px"><tr> <!--colsp…

Openssl数据安全传输平台004:套接字C语言API封装为C++类 / 客户端及服务端代码框架和代码实现

文章目录 0. 代码仓库1. 客户端C API2. 客户端C API的封装分析2.1 sckClient_init()和sckClient_destroy()2.2 sckClient_connect2.3 sckClient_closeconn()2.4 sckClient_send()2.5 sckClient_rev()2.6 sck_FreeMem 3. 客户端C API4. 服务端C API5. 服务端C6. 客户端和服务端代…

【试题040】多个逻辑或例题2

1.题目&#xff1a;设int n0;&#xff0c;执行表达式n ||(n-1) ||(n0)||(n1)||(n2)后n的值是 &#xff1f; 2.代码解析&#xff1a; 逻辑或 || 运算符是一个短路运算符&#xff0c;它从左到右依次计算表达式&#xff0c;如果遇到一个为真&#xff08;非零&#xff09;的值&am…

【Spring Boot 源码学习】HttpEncodingAutoConfiguration 详解

Spring Boot 源码学习系列 HttpEncodingAutoConfiguration 详解 引言往期内容主要内容1. CharacterEncodingFilter2. HttpEncodingAutoConfiguration2.1 加载自动配置组件2.2 过滤自动配置组件2.2.1 涉及注解2.2.2 characterEncodingFilter 方法2.2.3 localeCharsetMappingsCus…

四、网络请求与路由

一、网络请求 1、Axios请求 Axios是一个基于promise的网络请求库 &#xff08;1&#xff09;安装 npm install --save axios&#xff08;2&#xff09;引入 import axios from "axios"全局引入 import axios from "axios" import { createApp } from …

STM32,我想看单片机上的外设时钟,我怎么看?

一&#xff1a;在工程中加入rcc文件 首先需要加载我们的时钟函数的文件 stm32f10x_rcc.h 和 stm32f10x_rcc.c 文件 二&#xff1a;查看文件 在h头文件 尾部&#xff0c;有我们这个总线的函数 在函数体内&#xff0c;有我们这个宏定义的 外设时钟&#xff0c;我们拿就行了 APB2_…

多版本并发控制MVCC

什么是MVCC MVCC &#xff08;Multiversion Concurrency Control&#xff09;&#xff0c;多版本并发控制。顾名思义&#xff0c;MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之&#xff0c;…