docker的基本管理和概念

news2024/11/24 19:07:49

docker的基本管理和概念

docker是什么:开源的应用容器引擎.基于go语言开发的,运行在linux系统当中的开源的轻量级的“虚拟机”

docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的,可移植的,自给自足的容器

docker的宿主机是linux,集装箱可以理解为相互隔离的容器(组件,应用程序APP),每个容器都是一个独立的应用程序

docker的设计宗旨:build,ship and run any app,anywhere

封装好的现成的一个程序,只需要部署即可使用

ship and run any app:一次封装完成之后的程序,可以在任何环境运行

anywhere:任意宿主机

一次封装,到处运行

封装,发布,部署,运行,维护,运行,销毁

可以一整套的方式管理应用程序的生命周期

docker为什么受欢迎?

1、灵活,再复杂的应用也可以实现容器化

2、轻量级,小型的,不完整的,最小化封装的程序,与宿主机共享一个内核

3、可互换,可以随时的升级,更新

4、便携式,本地可以构建,在云平台上也可以实现部署。(在任何地方运行)

5、可扩展,自动分发容器副本

6、可堆叠,在宿主机上可以创建不同版本的同一容器,也可以是多个相同版本的同一容器

linux的命令空间namespace。是一种内核的特性,允许将一组系统资源隔离,在一个命名空间中的进程在系统当中可以拥有独立的资源

docker只能支持64位系统

lowerDir:底层目录,docker的底层文件系统。是一个或者多个镜像文件的根文件系统
UpperDir:可写层,可以在容器运行时,在容器内进行写操作。实现容器的可写性
MergeDir:合并目录,lowerdir和upperDir合并起来,就是容器的文件系统,用户看到的也就是这个合并的视图
WorkDir:工作目录,处理文件系统的变更,当在容器内进行写操作时,overlayfs使用workdir来追踪文件的变更

docker安装完毕之后,服务端和客户端都在一起,都运行在一台机器上

怎么实现系统资源的隔离,隔离点有哪些?

namespace的六项隔离措施:

1、UTS(命名空间)

系统调用参数:CLONE_NEWUTS

隔离内容:主机与域名

在UTS这个命名空间当中创建进程,进程可以看到自己的主机名和域名,与其他进程隔开

2、IPC

系统调用的参数:CLONE_NEWIPC

隔离内容:信号量,消息队列,共享内存。

在IPC这个命名空间中,进程可以拥有独立的进程间通信资源

3、PID

系统调用的参数:CLONE_NEWPID

隔离内容:每个进程都有自己独立的进程号空间

4、network

系统调用参数:CLONE_NEWNET

调用内容:网络设备,网络栈,以及端口

每个进程都有一个自己独立的网络资源。端口号

5、mount

系统调用的参数:CLONE_NEWNS

隔离内容:挂载点,在mount这个命名空间之中,每个进程或者设备都有一个自己的文件系统挂载点,相互之间互不干扰

6、user

系统调用的参数:CLONE_NEWUSER

隔离内容:隔离不同的用户和用户组

基于这六个隔离项,实现了容器与容器之间,以及容器和宿主机之间的资源隔离

docker的核心组件:

镜像:是docker的基础,最小单位,类似于虚拟机的ISO文件,一个镜像就是一个可执行的包,包里面包含了运行这个程序的所有内容(代码,配置文件,环境变量等等)

docker镜像也是一个压缩包,不是一个解压的文件,是一个环境部署的脚本,甚至包含了完整的操作系统。

容器:docker的容器就是基于镜像运行起来的实例,可以启动,可以停止,也可以删除。每一个容器都是相互隔离的,互不可见

仓库:保存镜像,所有的镜像都是从仓库当中拉去的,可以有两种,一是公有仓库,二是私有仓库。镜像都是从仓库中拉去的,镜像也保存在仓库之中

下载到了本地:镜像 容器 日志 /var/lib/docker 宿主机中

docker与虚拟机之间的区别:

特性:             docker                   虚拟机

启动速度            秒级                   分钟级

计算能力损耗       几乎无                  损耗50%

性能            接近于原生系统           弱于原生系统

系统支持量         上千个             硬件系统来看(几十个)

隔离性             资源隔离                完全隔离

安全性             安全性差                安全性高

docker安装:

systemctl stop firewalld

setenforce 0

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-utils:提供了 yum-config-manager 工具。

device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,

它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

docker-ce就是docker的社区版,面向开发者和小型团队以及个人使用,是免费的

docker-ce-cli就是提供docker的命令行工具

contarnerd.io就是负责管理容器的生命周期,创建,运行,停止,继续,销毁

yum install -y docker-ce docker-ce-cli containerd.io

重启服务,开机自启服务

docker的镜像进行操作:

docker search 镜像的名称

NAME    DESCRIPTION               STARS  OFFICIAL  AUTOMATED

nginx     official build of nginx         19319   [OK]

name:镜像的名称

DESCRIPTION:描述信息

STARS:点赞数量

OFFICIAL:官方镜像

REPOSITORY    TAG    IMAGE ID        CREATED   SIZE

centos        latest   5d0da3dc9764   2 years ago  231MB

REPOSITORY:镜像所属的仓库

TAG:标签,可以理解为版本,标记一个仓库中的不同镜像

IMAGE ID:镜像的唯一标识,标识不重复

CREATED:镜像的创建时间

SIZE:镜像的大小

一个镜像有多个标签,删除时,只是删除标签,只删除最后一个,删除的就是镜像本身

如果镜像已经备容器使用,要先停止容器,再删除容器,最后删除镜像

导出的容器还是一个镜像,必须要run create才能成为容器

已经配置好的导出的容器镜像,可以直接使用(我们都是用的开发已经设置,配置好的容器镜像)

docker的特性:即使再创建过程中报错,容器还是会被创建,但是这个容器不可用

              导入镜像,或者导入容器镜像,如果和已有标签重复,导入的镜像或者容器镜像,tag这一项就会变成none

docker:就是一个轻量级的虚拟机,宿主机是linux

docker  镜像  容器  仓库

docker search:搜索

docker pull nginx:1.22.0:获取镜像

docker images:查看镜像

docker rmi -f:强制删除镜像(删除了正在运行的容器的镜像,对容器会有影响吗?)

docker tag nginx:1.22.0(在镜像中已有标签)nginx:guoqi(给她新的标签)硬链接(复制了源镜像)

docker save -o /opt/nginx.tar(一般用XXX.tar)nginx:1.22.0(这个镜像要已存在)

docker load -i xxx.tar:导入容器

docker push pplok1230/nginx:guoqi(pplok1230:dockerhup的用户名):上传镜像

docker容器:

-i

-t

-d

-itd:标识后台运行指定程序,而且创建一个交互式的shell,用户输入操作命令

docker run -itd nginx':1.22.0 --name test1 /bin/bash

如果容器中没有可执行命令,容器创建完成之后将立刻退出

docker exec -it 容器名字/容器ID

docker ps:只显示正在运行的容器

docker ps -a:显示所有容器,包括没有运行的容器

docker export -o guoqi.tar 容器名/容器ID

docker import guoqi.tar --nginx:guoqi(尽量不要重复标签名)

docker cp 容器名/容器ID:/etc/nginx/nginx.conf /opt

docker cp /opt/123.txt 容器名/容器ID:/etc/nginx/nginx.conf

docker rm:删除容器

docker rm -f

docker images:查看镜像

docker inspect (镜像id):查看镜像的详细信息

docker rmi 5d0da3dc9764:删除整个镜像

docker pull

docker ps:查看正在运行的容器

docker ps -a:查看所有正在运行的容器

docker create it centos:7 /bin/bash

-i:让容器开启标准输入,接受用户的输入命令

-t:给这个容器分配一个终端,这是一个虚拟的伪终端

-it:形成一个宿主机的和容器形成一个可以交互shell命令行

-d:可以让创建的容器以守护进程在后台进行,容器所运行的程序不会结束

如何在获取镜像的时候,获取速度加快

登录这个网站:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

每个人的配置镜像加速器都不一样,大家复制自己的就好了,不要加sudo,一行一行敲就行了

docker pull centos:获取centos镜像

1、docker如何实现资源隔离

6个命名空间

2、docker的核心组件,作用是什么

镜像

容器

仓库

3、如何获取centos8的镜像,获取之后如何给这个镜像改一个标签并且查看镜像

4、创建一个容器,基于获取的centos8镜像,名字叫test1,在后台持续运行,查看正在运行的容器

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

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

相关文章

智能优化算法应用:基于樽海鞘群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于樽海鞘群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于樽海鞘群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.樽海鞘群算法4.实验参数设定5.算法结果6.…

基于SSM+JSP网上订餐管理系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

logstash之grok插件自定义规则学习

文章目录 1、前言2、Grok提供的常用Patterns说明及举例2.1 常用的表达式说明 3、使用grok插件进行日志字段处理4、案例1:处理nginx的日志4.1、查看nginx日志格式4.2、对nginx的日志进行过滤处理 5、案例2:处理tomcat的日志5.1、[安装logstash-filter-mul…

2024 年 SEO 现状

搜索引擎优化(SEO)一直以来都是网络知名度和成功的基石。随着我们踏上 2024 年的征程,SEO领域正在经历重大变革,有些变革已经开始,这对企业、创作者和营销人员来说既是挑战也是机遇。 语音搜索 语音搜索曾是一个未来…

新闻类直播介绍

新闻类直播是一种以新闻事件为主题的网络直播,通过直播技术向观众实时报道新闻事件的发展过程。 在新闻类直播中,主播通常会选择重要的新闻事件进行直播报道,如突发事件、重大事件、热点事件等。他们会在现场进行报道和解说,同时…

swing快速入门(四)

注释很详细,直接上代码 上一篇 增加内容 流式布局范例 import java.awt.*;public class swing_test_2{public static void main(String[] args){//创建一个窗口对象Frame framenew Frame("test");//设置窗口大小frame.setSize(800,800);//这里演示的是…

Python自动化:selenium常用方法总结

使用的Python版本为3.8,selenium版本为4.15.2 Python自动化:selenium常用方法总结 1. 三种等待方式2. 浏览器操作3. 8种查找元素的方法4. 高级事件 1. 三种等待方式 强制等待 使用模块time下的sleep()实现等待效果隐式等待 使用driver.implicitly_wait()方法&#…

案例课5——小i机器人

1.公司介绍 小i机器人是上海智臻智能网络科技股份有限公司自主研发的智能机器人,以多语种自然语言处理、深度语义交互、语音识别和机器学习等人工智能核心技术为基础,面向企业服务、政务、医疗、制造等行业提供多样化的解决方案和完善的专业服务体系。 …

sdxl-turbo:adversarial diffusion distillation

【AIGC第三十一篇】SDXL Turbo:一种实时的文本到图像生成模型 - 知乎【 SDXL Turbo通过采用全新的蒸馏技术,实现了最先进的性能,能够以前所未有的质量进行单步图像生成,将所需的步骤数量从50步减少到仅需一步。这种创新技术大大提…

成都工业学院Web技术基础(WEB)实验七:Date、Math、Array对象使用

写在前面 1、基于2022级计算机大类实验指导书 2、代码仅提供参考,前端变化比较大,按照要求,只能做到像,不能做到一模一样 3、图片和文字仅为示例,需要自行替换 4、如果代码不满足你的要求,请寻求其他的…

简单聊聊使用lombok 的争议

大家好,我是G探险者。 项目里,因为我使用了Lombok插件,然后代码走查的时候被领导点名了。 我心想,这么好用的插件,为啥不推广呢,整天写那些烦人的setter,getter方法就不嫌烦么? 领导…

在SpringData JPA 中实现对持久层的操作

1.导入依赖 hibernate 这个依赖自带实现JPA接口 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><depen…

微信小程序、uniapp自定义底部导航栏(附源码)

需求分析 目前开发一套“同城跑腿平台”小程序&#xff0c;面向用户和骑手&#xff0c;需要两个不同的底部导航&#xff0c;uniapp原生导航不满足要求。所以需要自定义导航栏。 随着自定义导航卡完成&#xff0c;切换选项卡页面总是闪烁&#xff0c;在网上也没有搜到完整的解决…

性能监控体系:InfluxDB Grafana Prometheus

InfluxDB 简介 什么是 InfluxDB &#xff1f; InfluxDB 是一个由 InfluxData 开发的&#xff0c;开源的时序型数据库。它由 Go 语言写成&#xff0c;着力于高性能地查询与存储时序型数据。 InfluxDB 被广泛应用于存储系统的监控数据、IoT 行业的实时数据等场景。 可配合 Te…

Python安装基础之如何查看python版本、如何查看多个python版本

文章目录 前言最简单的验证手段查看python的路径直接查看python版本默认的python版本就是cmd进入的python关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小…

离散型随机变量的分布律(也称概率质量函数:probability mass function, PMF)

设是一个离散型随机变量&#xff0c;可能的取值为&#xff0c;取各个值的概率记为&#xff1a; &#xff08;1&#xff09; 其中 并且&#xff0c; 公式&#xff08;1&#xff09;就称为离散型随机变量的分布律&#xff0c;也称概率质量函数&#xff1a;probability ma…

Python 进阶(十三):JSON 序列化和反序列化(json 模块)

大家好,我是水滴~~ 本篇文章主要介绍json模块的功能,包括将Python对象序列化到文件、将Python对象序列化为字符串、序列化时类型的对照表、将文件中JSON数据反序列化为Python对象,将JSON字符串反序列化为Python对象、反序列化时类型的对照表等。 文章中包含大量的代码示例…

安防 音响 车载等产品中音频接口选型的高性能国产芯片分析

在人工智能兴起之后&#xff0c;安防市场就成为了其全球最大的市场&#xff0c;也是成功落地的最主要场景之一。对于安防应用而言&#xff0c;智慧摄像头、智慧交通、智慧城市等概念的不断涌现&#xff0c;对于芯片产业催生出海量需求。今天&#xff0c;我将为大家梳理GLOBALCH…

arcgis for js 添加自定义叠加图片到地图坐标点上

在使用arcgis for js开发地图绘制图层时&#xff0c;可以通过相关api实现添加图标到某个坐标点&#xff0c;那么如果现在有一个需要添加一个小图叠大图的需求&#xff0c;又或者是自定义绘制图标&#xff0c;如何实现&#xff1f; 1、简单地绘制一个图标到底图图层上面 const…

[C++] STL_priority_queue(优先级队列) 的使用及底层的模拟实现,容器适配器,deque的原理介绍

文章目录 1、priority_queue1.1 priority_queue的介绍和使用1.2 priority_queue的使用模拟实现&#xff1a; 2、容器适配器2.1 什么是适配器2.2 STL标准库中stack和queue的底层结构 3、deque3.1 deque的原理介绍3.2 deque的缺陷 4、为什么选择deque作为stack和queue的底层默认容…