从零开始,Docker进阶之路(一):Docker基础

一、简介与概述

1.Docker是一个开源应用容器引擎,基于Go语言并遵从Apache2.0协议开源。

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

2.Docker的主要目标是通过对应用的程序组件的封装,分发,部署,运行等生命周期的管理,使用户的app(也可以是一个Web应用程序或者数据库应用等)及其环境能够做到“一次封装,到处运行”

3.将应用运行到Docker容器上面,而Docker容器在任何操作系统上都是一致的,这就是实现跨平台跨服务器。只需一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

4.容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低

总结:Docker实际上就是一个虚拟化轻量级Linux服务器,可以解决我们在开发环境中运行配置问题。

二、为什么需要使用Docker

Docker : 虚拟化容器技术

Docker主要解决我们开发环境配置迁移的问题

下面举出一个示例

  • 我们现在开发了一个JavaWeb项目,需要依赖很多的环境配置,比如Tomcat、JDK、Nginx、Redis环境等等
  • 本地需要安装这些环境,再打war包运维部署在Linux服务器,运维人员也需要在Linux服务器上安装这些环境
  • 但是有时候会发生这些问题:我在本地运行环境没有问题,但是打包到Linux服务器上总是遇到很多错误,大多数由于一些版本冲突影响。
  • 所以在这时候我们就可以使用Docker安装和部署软件,直接将springboot项目制作成一个镜像文件,镜像文件中包含JDK版本等等信息,就可以减少依赖冲突的概率,直接部署到Linux服务器。

三、使用Docker的好处

1.简化配置 安装创建非常的方便

2.代码流水线(Code Pipeline)管理 传统项目部署可能需要经过许多环节,容易产生版本的依赖冲突问题,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。

3.Devops开发与运维一体化减少沟通的成本

4.虚拟技术、快速部署、弹性扩容

四、Docker核心三要素

1.仓库----专门存放镜像文件,类似于app软件市场

2.镜像----类似于安装包

镜像方式来源:

  • 自己的项目(自己创建镜像文件)
  • 第三方镜像来自于  https://hub.docker.com/  仓库

3.容器----运行我们的镜像文件  自己独立的ip和网络信息化  虚拟化出一个轻量级的Linux操作系统精简版本 

五、应用场景

1.web应用的自动化打包和发布。

2.自动化测试和持续集成、发布

3.在服务型环境中部署和调整数据库或其他后台应用。

4.从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的Paas环境

六、容器与虚拟机的区别

什么是虚拟机:在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。 

从下到上理解:

 从下往上看,最下面的一层是物理机,可以是服务器;往上一层是主机操作系统。

再往上就是虚拟机软件了,比如我们常用的VirtualBox、VMWare,它们的作用是模拟计算机硬件;继续向上就是虚拟机模拟出来的操作系统了;在虚拟的操作系统中,安装所需的软件、组件等。最后就是具体的应用了。

最下面两层,概念同上。

再往上,可以看做是Docker容器的管理器。

依赖和应用都被打包成了Docker镜像。例如,JDK、Tomcat、应用都被打包在了一起,运行在Docker容器里,容器与容器间是隔离的。

七、Docker和虚拟机的区别

1.从两者的架构图上看,虚拟机是在硬件级别进行虚拟化,模拟硬件搭建操作系统;而Docker是在操作系统的层面虚拟化,复用操作系统,运行Docker容器。

2.Docker的速度很快,秒级,而虚拟机的速度通常要按分钟计算。

3.Docker所用的资源更少,性能更高。同样一个物理机器,Docker运行的镜像数量远多于虚拟机的数量。

4.虚拟机实现了操作系统之间的隔离,Docker是进程之间的隔离,虚拟机隔离级别更高、安全性方面也更强。

5.虚拟机和Docker各有优势,不存在谁替代掉谁的问题,很多企业都采用物理机上做虚拟机,虚拟机中跑Docker的方式。

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

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

相关文章

可视化设计:华为不出,谁与争锋。

在可视化设计上,华为也是独树一帜的存在,本期分享几个华为的可视化作品。

vue echarts tooltip动态绑定模板,并且处理vue事件绑定

先上代码: tooltip: {// 这里是车辆iconshow: true,// trigger: "item",// backgroundColor: "transparent",appendToBody: true,textStyle: {color: "#ffffff" //设置文字颜色},formatter: (params) > {const TruckTooltip Vue.…

# 高可用的并发解决方案nginx+keepalived(三)

高可用的并发解决方案nginxkeepalived(三) 一、Nginx搭建图片服务器 针对任何站点,几乎都要访问图片,而一个网页里面几乎有好些张图片,这时候会占据大量tomcat连接,造成大量并发,我们可以通过…

动漫影视渲染合成- NVMe全闪NAS存储应用

电台、影视制作中心、动漫公司等需要进行大量视频渲染,动画渲染的机构,选用NVMe全闪存储 NAS性能发挥稳定

第十四届蓝桥杯嵌入式国赛

一. 前言 本篇博客主要讲述十四届蓝桥杯嵌入式的国赛题目,包括STM32CubeMx的相关配置以及相关功能实现代码以及我在做题过程中所遇到的一些问题和总结收获。如果有兴趣的伙伴还可以去做做其它届的真题,可去 蓝桥云课 上搜索历届真题即可。 二. 题目概述 …

nVisual到底能为机房运维管理解决哪些问题?

一、nVisual是什么? nVisual是一套运维管理软件,以可视化的方式记录机房内设备信息、物理位置、物理连接关系等,通过nVisual可以建立完善的设备档案。能真实还原机房平面图、还可画机柜布置图、不仅可以管理设备还可以管理设备端口和链路&am…

从零开始构建后台管理系统列表:新手友好教程,全程使用 HTML+CSS+JavaScript,涵盖增删查改、导入导出、排序等功能(含完整源码)

b站视频演示效果&#xff1a; 效果图&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>后台管理系统</title><!-- 引入正确的 Vue.js 版本 --><script src"https:/…

有关 签到/签退 业务逻辑 的梳理与学习

导言 最近搞到了个签到管理&#xff0c;其中的业务逻辑感觉有点复杂(可能是我的方向不对),虽然是实现了&#xff0c;不过代码和逻辑很多&#xff0c;也有些乱&#xff0c;想趁着还记得逻辑来记录梳理一下&#xff0c;看看自己以后有没有更好的思路&#xff0c;或者有大佬有思路…

Day 43~48 smbms

SMBMS SMBMS是超市订单管理系统的简称 数据库&#xff1a; 项目如何让搭建&#xff1f; 考虑使用不使用Maven&#xff1f; 依赖&#xff0c;jar 项目搭建准备工作 1.搭建一个mavenweb项目 2.配置Tomcat 3.测试项目是否能够跑起来 4.导入项目中会遇到的jar包 jsp,servle…

html TAB切换按钮变色、自动生成table--使用函数优化结构

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

基于Springboot社区论坛JAVA|VUE|SSM计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

2024双11买什么东西比较好?2024双十一好物推荐

双十一各种爆款商品&#xff0c;打折商品非常多&#xff0c;容易让人挑花眼也容易落入消费主义的陷阱&#xff0c;买回家后发现并不实用&#xff0c;甚至可能是自己平常生活中根本用不上的东西&#xff01;即使是打折活动也要在购买前考虑一下自己是否需要&#xff0c;在日常生…

Android (rust) vulkan (JNI) 画一个三角形: VulkanSurfaceView 初始化

上文说到, vulkan 作为一种 GPU 编程接口标准, 具有很好的跨平台能力. 并且在 wayland (GNU/Linux) 成功使用 vulkan 绘制了一个三角形. 今天, 我们同样使用 vulkano (rust), 在 Android (手机) 也画一个三角形吧 ~ 本文的解决方案主要参考了 stackoverflow 的一篇文章 (链接…

ITU标准引领车内通讯新纪元

在现代汽车科技更迭的今天&#xff0c;车内通讯与免提通话系统的性能与稳定性成为了消费者购车时不可忽视的重要因素。随着国际电信联盟&#xff08;ITU&#xff09;一系列标准的推出&#xff0c;车内通讯体验正迈向新的高度。本文将深入探讨ITU-T P.1100、P.1110、P.1120、P.1…

PTA L1-070 吃火锅

L1-070 吃火锅&#xff08;15分&#xff09; 以上图片来自微信朋友圈&#xff1a;这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”&#xff0c;那就厉害了&#xff0c;我们的故事就开始了。 本题要求你实现一个程序&#xff0c;自动检查你朋友给你发来的信息…

Django 对数据库的增删改查

新增 使用方法&#xff1a;类模型.objects.create 类模型 from django.db import models# Create your models here. class Car(models.Model):user models.CharField(max_length200)plate_number models.CharField(max_length20)def __str__(self):return f{self.user} -…

论文 | Reframing Instructional Prompts to GPTk’s Language

作者&#xff1a;Swaroop Mishra, Daniel Khashabi, Chitta Baral, Yejin Choi, Hannaneh Hajishirzi 论文摘要&#xff1a;语言模型 (LM) 更容易遵循哪些类型的指令提示&#xff1f; 我们通过进行广泛的实证分析来研究这个问题&#xff0c;这些分析阐明了成功指令提示的重要特…

vs2019 当前不会命中断点,还没有为该文档加载任何符号

问题&#xff1a; 解决问题&#xff1a; 1.检查C/C中的调试信息格式&#xff1b; 2. 检查连接器中的生成调试信息&#xff1b; 3.我的错误是修改过调试中的 “命令”这项导致的&#xff0c;下图已经改回默认&#xff1b;

责任链模式优化 文章发布的接口(长度验证,敏感词验证,图片验证等环节) 代码,示例

需求&#xff1a;后端需要提供一个文章发布的接口&#xff0c;接口中需要先对文章内容进行如下校验&#xff0c;校验通过后才能发布 1. 文章长度不能超过1万个字符 2. 不能有敏感词 3. 文章中图片需要合规 责任链相当于一个链条一样&#xff0c;链条上有很多节点&#xff0c;节…

基于STM32设计的室内育苗环境管理系统(物联网)

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成 1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发 1.5 模块的技术详情介绍【1】ESP8266-WIFI模块【2】MQ135传感器【4】DHT11传感器【5】B1750传感器 …