当前位置: 首页 > news >正文

70、微服务保姆教程(十三)Docker容器详细讲义

一、关于Docker

1.1为什么要用docker?

随着开发的项目越来越复杂,软件越来越多,服务器越来越多,我们在开发和部署的时候会遇到很多问题,比如:

1.不同的应用程序可能会有不同的应用环境,比如Java开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如tomcat和Apache访问端口冲突。这个时候你就要隔离Java开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。2.你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。3.我们部署一台服务器就需要安装和配置很多环境,在分布式环境中,需要部署很多台,每台都完全安装和部署一次太麻烦。

那么怎么解决呢?我们可以用Docker!

Docker可以把开发环境直接封装转移给运维,运维直接部署封装后的环境就可以,而且docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。

1.2 什么是docker

docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。

1.3 docker的思想

1.Docker采用集装箱思想意思是将需要的内容和环境打包成一个个集装箱,所有的集装箱都可以上传到码头上,当有人需要某个环境时,就从码头上拉取这个集装箱就可以。码头的概念类似Maven仓库。2.Docker的隔离型docker在运行集装箱中的内容时,会在linux内核中,单独的开辟一个单元,不会影响到其它程序。3.Docker的标准化docker提供了一系列的命令,帮助我们去创建,拉取集装箱。docker还提供了Rest的Api,衍生出了很多的图形化界面,Rancher。  

在这里插入图片描述

1.4 底层原理

docker是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。LXC不是硬件的虚拟化,而是Linux内核的级别的虚拟机化,相对于传统的虚拟机,节省了很多硬件资源。NameSpaceLXC是利用内核namespace技术,进行进程隔离。其中pid, net, ipc, mnt, uts 等namespace将container的进程, 网络, 消息, 文件系统和hostname 隔离开。Control GroupLXC利用的宿主机共享的资源,虽然用namespace进行隔离,但是资源使用没有收到限制,这里就需要用到Control Group技术,对资源使用进行限制,设定优先级,资源控制等。

1.5 版本支持

在CentOS6.8是可以支持docker,但是有些特性无法使用,因此至少使用3.8的内核版本,建议是使用3.10版本以上。国内生产环境很多都是使用CentOS,所以一般使用CentOS7即可。
当然如果是Ubuntu/Debian/Deepin系列的发行版本也是支持的。

二、 Docker安装和配置

2.1 环境准备

操作系统:CentOS

软件源:阿里云镜像(在阿里云镜像站上面可以找到docker-ce的软件源,使用国内的源速度比较快)

2.2 安装docker

1、安装依赖

docker依赖于系统的一些必要的工具,可以提前安装。

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

在这里插入图片描述

2、添加软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

3、安装docker-ce
yum clean all #yum 会把下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除缓存。yum makecache fast  #这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度yum -y install docker-ce

在这里插入图片描述

在这里插入图片描述

4、启动服务

通过systemctl启动服务

systemctl start docker

在这里插入图片描述

5、查看安装版本

这样子就安装成功了,启动服务以后可以使用docker version查看一下当前的版本。

docker version

在这里插入图片描述

6、设置开机自动启动
 systemctl enable docker

http://www.dtcms.com/a/192532.html

相关文章:

  • 人体肢体渲染-一步几个脚印从头设计数字生命——仙盟创梦IDE
  • 工业操作系统核心技术揭秘
  • Web GIS可视化地图框架Leaflet、OpenLayers、Mapbox、Cesium、ArcGis for JavaScript
  • 从基础到实习项目:C++后端开发学习指南
  • 数据结构 -- 顺序查找和折半查找
  • python的宫崎骏动漫电影网站管理系统
  • 【论信息系统项目的合同管理】
  • OpenResty Manager 介绍与部署(Docker部署)
  • 20250515让飞凌的OK3588-C的核心板在Linux R4下适配以太网RTL8211F-CG为4线百兆时的接线图
  • 微服务如何实现服务的高并发
  • JAVA单元测试、反射
  • 数据结构 -- 树形查找(一)二叉排序树
  • 乡村地区无人机医药配送路径规划与优化仿真
  • 当服务器出现宕机情况该怎么办?
  • 【Vue】CSS3实现关键帧动画
  • [C++面试] lambda面试点
  • IOS CSS3 right transformX 动画卡顿 回弹
  • Flink 运维监控与指标采集实战(Prometheus + Grafana 全流程)
  • mac安装cast
  • 函数专题1
  • Kaamel隐私合规洞察:Temu在韩被罚事件分析
  • RPC框架源码分析学习(二)
  • 什么是路由器环回接口?
  • 鸿蒙OSUniApp 开发的文件上传与下载功能#三方框架 #Uniapp
  • 高云FPGA-新增输出管脚约束
  • 如何检测网站是否支持IPv6?有哪些IPv6测试指标?
  • upload-labs靶场通关详解:第6-9关
  • 【歌曲结构】1:基于歌词的歌曲结构分析:高潮、钩子、双副歌
  • 开发日常中的抓包工具经验谈:Charles 抓包工具与其它选项对比
  • 基于大模型预测胃穿孔预测与围手术期管理系统技术方案