docker基本内容简单复习

news2024/9/22 3:39:22

一、docker简介

在这里插入图片描述
docker是管理容器的引擎,docker为应用打包、部署平台,而非单纯的虚拟化技术

docker镜像

docker镜像是分层结构;共享宿主机kernel;同一docker主机支持运行多种Linux发行版;采用分层结构的好处是共享资源;base镜像提供的是最小的Linux发行版
docker镜像的构建:
docker commit构建镜像三部曲:
运行容器、修改容器、将容器保存为新的镜像
缺点:效率低、可重复性弱、容易出错;使用者无法对镜像进行审计、存在安全隐患。(构建过程我们通过docker history无法看到)

镜像的优化

  • 选择最精简的基础镜像
  • 减少镜像的层数
  • 清理镜像构建的中间产物
  • 注意优化网络请求
  • 使用多阶段构建镜像

二、docker网络

docker安装后会自动创建三种网络:host、none、bridge
docker安装时会创建一个名为 docker0 的Linux bridge,新建的容器会自动桥接到这个接口。

1、bridge模式下容器没有一个公有ip,只有宿主机可以直接访问,外部主机不可见;容器通过宿主机的NAT规则后可以访问外网
2、host网络模式需要在容器创建时指定–network=host;host模式可以让容器共享宿主机网络栈,外部主机可以与容器直接通信,但是这样的缺点是网络缺少隔离性;
3、none模式指禁用网络功能,只有io接口
4、建议使用自定义的网络来控制哪些容器可以相互通信,还可以自动DNS解析容器名称到IP地址。
5、桥接到不同网桥上的容器,彼此之间不能通信,docker在设计上就是隔离不同的network的;那么如何才能使两个不同网桥的容器通信呢?可以对其中一个容器添加一块另一个容器的网卡,这样两个容器拥有了一个公共的网卡,就可以进行通信。
6、容器如何访问外网是通过iptables的SNAT实现的;外网访问容器是通过端口映射实现的。
7、外网访问容器用到了docker-proxy和iptables DNAT;宿主机访问本机容器使用的是iptables DNAT;外部主机访问容器或容器之间的访问是docker-proxy实现
8、跨主机网络解决方案:docker原生的overlay和macvlan
macvlan网络方案实现:Linux kernel提供的一种网卡虚拟化技术,不需要Linux bridge,直接使用物理端口,性能极好;macvlan会独占主机网卡,但可以使用vlan子接口实现多macvlan网络;macvlan网络在二层上是隔离的,所以不同macvlan网络的容器是不能通信的。可以在三层上通过网关将macvlan网络连通起来。

三、docker数据卷

为什么要用数据卷:docker分层文件系统性能差、生命周期与容器相同;而docker数据卷mount到主机中,绕开了分层文件系统,和主机磁盘性能相同,容器删除后依然保留。并且它仅限本地磁盘,不能随容器迁移。

docker提供了三种数据卷,我们常用bind mount和docker管理卷
bind mount是将主机上的目录或者文件mount到容器里,使用直观高效、易于理解;bind mount默认权限是读写rw。可以在挂载的时候指定只读
bind mount必须指定host文件系统路径,限制了移植性。
docker managed volume 不需要指定mount源,docker自动为容器创建数
据卷目录。
默认创建的数据卷目录都在 /var/lib/docker/volumes 中;如果挂载时指向容器内已有的目录,原有数据会被复制到volume中。

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

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

相关文章

【网安神器篇】——系统指纹探测工具finger

作者名:白昼安全主页面链接: 主页传送门创作初心: 以后赚大钱座右铭: 不要让时代的悲哀成为你的悲哀专研方向: web安全,后渗透技术每日鸡汤: 我不想停下,因为这次出发的感觉太好了一…

【双指针问题】977. 有序数组的平方

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

Python快速上手系列--日志模块--详解篇

前言本篇主要说说日志模块,在写自动化测试框架的时候我们就需要用到这个模块了,方便我们快速的定位错误,了解软件的运行情况,更加顺畅的调试程序。为什么要用到日志模块,直接print不就好了!那得写多少print…

【Linux】进程的概念及操作进程

目录1.什么是进程2.描述进程 - PCB3.进程的具体操作3.1进程的属性与文件属性的关系3.2查看进程准备工作使用指令查找对应进程:在文件中查看进程3.3关闭进程ctrlckill3.4进程的一些特性3.5通过系统调用获取进程标识符3.6通过系统调用创建子进程1.什么是进程 背景&am…

工程师手册:电源设计中的电容选用规则

摘要 电源往往是我们在电路设计过程中最容易忽略的环节。作为一款优秀的设计,电源设计应当是很重要的,它很大程度影响了整个系统的性能和成本。电源设计中的电容使用,往往又是电源设计中最容易被忽略的地方。一、电源设计中电容的工作原理 在…

前段时间公司招人,面了一个要20K的,一问自动化只会点皮毛···

前段时间公司要招2个自动化测试,同事面了几十个候选人,发现了一个很奇怪的现象,面试的时候,如果问的是框架api、脚本编写这些问题,基本上个个都能对答如流,等问到实际项目的时候,类似“怎么从0开…

vue+elementUI 实现设置还款日字母弹窗组件

1、业务背景 还款业务,设置每月还款日,选每月几号扣款,不需要29、30、31,因为不是每个月都有这三天的 2、预期效果图 3、代码实现 3.1 初始化vue项目 地址:https://cn.vuejs.org/guide/introduction.html 3.2 在项…

KMS钥匙管理系统产品分析

背景: 人造成的不可控因素很多 以前拿公司钥匙的时候要先进行纸质登记,还钥匙的的时候也要进行纸质统计, 这个过程中有很多不可控的因素,如果没有登记怎么办?人把钥匙丢了怎么办呢? 产品设计 引入机器&am…

UDP网络编程

UDP和TCP 前几节我们提到了计算机网络编程中的TCP编程,TCP和UDP都是计算机机网络通信的传输层中的传输协议,今天我们来学习计算机网络编程中的基于UDP传输协议的网络编程 首先我们要了解TCP和UDP的区别 它们是同属于计算机网络传输层的传输协议 TCP&…

LeetCode24两两交换链表中的节点 带有输入和输出的完整程序

题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,3,4] 输出…

CSAPP学习笔记——虚拟内存(一)

虚拟内存的能力 它将主存看成是一个存储在地址空间的高速缓存,在主存中只保存活动区域,并更具需要在磁盘和主存之间来回传送数据,通过这种方式来高效使用主存(DRAM)它为每个进程提供了一致的地址空间,从而…

python虚拟环境与环境变量

一、环境变量 1.环境变量 在命令行下,使用可执行文件,需要来到可执行文件的路径下执行 如果在任意路径下执行可执行文件,能够有响应,就需要在环境变量配置 2.设置环境变量 用户变量:当前用户登录到系统,…

【LeetCode】剑指 Offer 07. 重建二叉树 p62 -- Java Version

题目链接:https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/ 1. 题目介绍(07. 重建二叉树) 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的…

回溯算法问题汇总

文章目录模版一. 组合问题77. 组合216.组合总和III17.电话号码的字母组合39. 组合总和40.组合总和II131.分割回文串93.复原IP地址78.子集90.子集II491.递增子序列46.全排列47.全排列 II332.重新安排行程51. N皇后37. 解数独模版 void backtracking(参数) {if (终止条件) {存放…

Webpack(通俗易懂介绍)

主题:为什么需要webpack,用来干什么? 前言 例如:前端不断的技术更新迭代,为了浏览器更好的兼容到以及项目更好的开发,所有才有需要Webpack来打包代码,本文介绍下,Webpack的定义。 …

无FTTR不千兆,华为星光F30让家中不再有“隐秘的角落”

“恒有二者,余畏敬焉。位我上者,灿烂星空;道德律令,在我心中。”康德《实践理性批判》中,将人对外部世界的探索精神,抽象成了对无尽星空的追逐。以前,光为我们照亮现实世界。现在,人…

vue使用axios发送post请求携带json body参数,后端使用@RequestBody进行接收

前言 最近在做自己项目中,做一个非常简单的新增用户场景,但是使用原生axios发送post请求的时候,还是踩了不少坑的。 唉,说多了都是泪,小小一个新增业务,在自己前后端一起开发的时候,硬是搞了好…

使用QQ聊天机器人上传每日健康日报【Nonebot插件教程】

文章目录前言一、需求分析1.功能需求2.技术需求二、流程分析1.分析请求过程2.分析代码编写过程四、代码编写前言 作为2020级入学的大学生,在疫情的笼罩下步入了大学的校门,到校第一件事就是接到了每日进行健康日报身体情况上报的通知,每日醒…

08 OpenCV腐蚀、膨胀与形态学运算

1 腐蚀 腐蚀操作是一种形态学操作,它用于缩小二值图像中的对象,并去除图像中的噪声和细节。其基本原理是将图像中的每个像素与内核进行比较,如果内核覆盖的区域内所有像素值都为非零值,则该像素保持不变;否则&#xf…

django+vue项目搭建,前后端通信打通,

文章目录django 环境搭建1.创建django骨架项目2.创建应用3.试着启动项目,验证环境OK4.基础配置admin.pysettings.py前端项目搭建1.安装vue-cli2.创建前端项目3.创建时候选什么前端项目结构页面上呈现的内容是怎么来的?这里只说明vue部分曲线救国打通vue和…