Docker介绍

目录​​​​​​​

一、Docker是什么?

二、Docker只能使用Linux吗?

三、为什么要使用Docker? 

四、镜像和容器

五、关闭SELINUX


一、Docker是什么?

        Docker是轻量级的虚拟机产品,我们在使用Docker的时候,它并不会为每个虚拟化实例(容器)创建完整的虚拟硬件环境,而是为每个实例虚拟化少量的硬件环境(例如网卡)。这些虚拟化实例直接共享使用Linux系统的CPU、内存和硬盘资源。因此说,采用Docker的Linux主机,可以轻松创建几十个容器。 

        VMware这种重量级的虚拟机,无法做到这一点。VMware虚拟机创建每个实例,都要虚拟化完整的硬件环境,所以在Linux或者Windows系统上面根本无法创建多个这样的虚拟机实例。

二、Docker只能使用Linux吗?

        所有的Docker容器都是建立在Linux系统之上的,所以建议大家在Linux环境中安装Docker程序。如果你本地不是Linux系统,可以先通过虚拟机安装Linux,然后在Linux上面安装Docker程序。

        虽然Docker也提供了Windows版本和MacOS版本,但是安装程序都包含了简化版的Linux内核,这个简化版的Linux功能有限,所以无法发挥出Docker所有的功能,所以建议大家在Linux系统上面安装Docker,才能发挥出Docker全部的功能。

三、为什么要使用Docker? 

使用Docker主要有两点原因: 

        首先,Docker容器之间是相互隔离的,我们可以在容器中部署程序的同时,不用担心跟其他容器产生冲突。例如某公司几年前开发的Java程序用的是JDK1.6,但是现在要部署的Java项目用JDK1.8开发的,现在我们无法在服务器上面同时安装JDK1.6和JDK1.8环境。如果我们用上了Docker程序,先创建出两个容器,然后分别安装JDK1.6和JDK1.8,接下来分别部署新旧程序。这就能做到在一个服务器上面可以部署若干程序的时候,不用担心发生矛盾冲突。其实你在阿里云和腾讯上面购买的云主机实例,就是这种虚拟化的容器。

        其次,Docker能为我们提供快速化部署。比如说有人在网上提供了PHP镜像,里面包括了PHP环境、Apache服务器和MySQL数据库,我们从网上下载镜像,然后创建容器,就直接可以部署PHP项目了,非常的方便。再比如,你自己也可以创建镜像,把要部署的程序和运行环境打成Docker镜像,分发给其他人,他们创建容器就可以直接运行程序了。 

        总结成一句话,Docker有毒,用上就会让人上瘾。

四、镜像和容器

        Docker为了最大化的共享资源,减少资源浪费,创造出了镜像技术。镜像是虚拟实例之间相同的部分,差异化的部分叫做容器。比如说一个JDK镜像,里面安装了JDK1.8,然后我为这个镜像创建出3个容器,这三个容器共享使用JDK镜像中的Java环境,并且我可以在每个容器中部署不同的Java程序。如果Docker没有镜像技术,我们只能分别在三个容器中安装JDK环境,这就造成了不必要的重复浪费。 

        需要注意的是,容器只能读取镜像中的数据,不能修改镜像的内容,也就是说,镜像对于容器是只读的。

五、关闭SELINUX

        SELINUX是CentOS自带的安全服务,因为晦涩难用,并且跟很多程序冲突,所以强烈建议大家关闭这个服务。 

        找到 /etc/sysconfig/selinux 文件,把其中的 SELINUX 设置为 disabled ,保存文件之后重启CentOS系统。

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

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

相关文章

05 proxy代理、组件间的通信

React全家桶 一、脚手架配置代理(proxy)的方式 CORS: 请求url:http://www.baidu.com 发送url:http://www.jd.com response.setHeader(Access-Control-Allow-Origin,*);通过express快速搭建一个服务 创建一个图书组件 import React, { useEffect } from react import axio…

使用OpenXML库替换docx文档(Word文档)中的特定字段

在批量生成Word文档的应用中,最常见的需求莫过于替换掉文档中的特定字段以生成新的文档。利用OpenXML库可轻松实现这一需求。 不完善版本 首先放出最简单然而有bug的版本: using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wor…

Spring Boot 中的事务回滚规则

Spring Boot 中的事务回滚规则 在应用程序中,事务管理是一个重要的概念。事务是指一系列的操作,这些操作要么全部成功,要么全部失败。在Spring Boot中,我们可以使用事务管理器来管理事务。在使用事务管理器的时候,一个…

【Oracle】springboot连接Oracle 集成mybatis、druid

目录 项目结构与库表数据pom.xmlapplication.yml实体类Mappercontroller接口测试 基于spring-boot 2.7.11,连接Oracle 11g 仅做一个简单的示例 特别说明(不一定正确,还请指正):我Oracle也不熟,但据我观察发…

Grafana任意文件读取漏洞(CVE-2021-43798)

Grafana任意文件读取漏洞(CVE-2021-43798) 一、漏洞描述 Grafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后,Grafana可以在网络浏览器里显示数据图表和警告。 二、漏洞影响范围 影响版本: Gr…

【资料分享】全志科技T507-H评估板规格书(4核ARM Cortex-A53,主频1.416GHz)

1 评估板简介 创龙科技TLT507-EVM是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53国产工业评估板,主频高达1.416GHz,由核心板和评估底板组成。核心板CPU、ROM、RAM、电源、晶振等所有器件均采用国产工业级方案,国产化率100%。同时&a…

ElasticSearch 8.0+ 版本Windows系统启动

下载地址:https://www.elastic.co/cn/downloads/past-releases/winlogbeat-8-8-1 解压\elasticsearch\elasticsearch-8.5.1 进入bin目录,启动elasticsearch.bat 问题1: warning: ignoring JAVA_HOMED:\jdk1.8.0_271; using bundled JDK J…

FlutterUnit 已上架 iOS,暗色模式全面支持

theme: cyanosis 一、FlutterUnit 的全平台支持 FlutterUnit 是我的一个开源项目,基于 Flutter 构建的一个 全平台 应用程序。现在很荣幸地宣布: FlutterUnit 已经上架 iOS 的 App Store ,自此主流的几大平台均已提供体验。 项目地址: https://github.co…

普通人如何居家办公实现网上赚钱?分享五种互联网赚钱的副业项目

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 网上赚钱,主要是利用各种信息差异从网上获取收入。 近年来,随着互联网…

分布式存储Ceph的部署及应用(创建MDS、RBD、RGW 接口)

系列文章目录 文章目录 系列文章目录一、1.存储基础2. 单机存储的问题3. 分布式存储(软件定义的存储 SDS) 二 Ceph1.Ceph 简介2. Ceph 数据的存储过程 总结 一、 1.存储基础 1.1 单机存储设备 ●DAS(直接附加存储,是直接接到计算…

【Linux】文件基础IO操作:C语言接口 | 系统调用接口 | 重定向

重修C语言文件知识Linux文件知识标记位传参文件的系统调用理解什么是文件文件fd的分配规则重定向C语言文件层面的缓冲区知识 重修C语言文件知识 打开文件操作fopen函数&#xff1a; 我们看一段代码&#xff0c;以写(w)的形式来打开文件&#xff1a; #include <stdio.h>…

在Mac上安装Aspectj1.9.8(用于Java17)+IDEA

1. 确定所使用的Java版本和AspectJ的对应关系 2. 下载AspectJ包 3. 安装AspectJ 4. 添加AspectJ对应的环境变量 5. AspectJ测试-简单终端测试 6. AspectJ测试-通过IDEA敲代码测试 ---------------------------------------详细教程-------------------------------------…