Docker容器及安装 01

news2024/12/23 14:52:44

前言

在这里插入图片描述

1.1 从环境配置说起

环境配置是软件开发的一大难题。开发、测试及运维人员需要相同的代码运行环境,如此一来就需要多次搭建环境,想想就觉得麻烦,实际上,在不了解docker等容器技术以前,还真就是这么干的,手动滑稽。开发者常常会说:“它在我的机器可以跑了”(It works on my machine),言外之意就是,在其他机器上可能会有问题。

在容器技术出现以前,虚拟机技术是一种将程序连同操作系统打包的解决方案。可以先搭好一套虚拟机环境,然后给测试和运维clone出来使用,但是这种方案缺点也很明显:
(1)资源占用多:相较于一个单纯的程序,操作系统是一个很臃肿的程序。我们知道操作系统运行起来是需要占用很多资源的,大家对此肯定深有体会,刚装好的系统还什么都还没装,内存几个G没了,磁盘几十个G没了;
(2)启动慢:虚拟机启动一般要等几分钟,应用程序才能真正运行。

1.2 Linux 容器

由于虚拟机存在以上缺点,Linux发展出了另一种虚拟化技术,Linux container(linux容器,简称 LXC)。LXC是一种轻量级的容器虚拟化技术,最大效率的隔离了进程和资源。它通过cgroup 和 namespace等限制,隔离进程组所使用的物理资源,如CPU、内存等。 实际上LXC在7、8年前就已经加入到linux内核了。然而直到2013年docker出世的时候才火起来,换句话说,如果没有云计算,敏捷开发,高频度的弹性伸缩需求,没有IT行业这么多年长足的发展,可能也就没有docker了。

二、什么是Docker

Docker是dotCloud公司开源的一个基于LXC的高级容器引擎,源码托管在Github上,基于go语言并且遵从Apache2.0协议开源。 GitHub地址:https://github.com/moby/moby

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

简单来说就是:docker解决了运行环境不一致所带来的问题

三、Docker 的用途

  1. 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
  2. 动态扩缩容。因为 Docker 容器的开关很方便
  3. 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

Docker局限性
Docker用于应用程序时是最有用的,但并不包含数据。一个容器的镜像通常都很小,不用和存储大量数据,存储可以通过外部挂载等方式使用,比如:NFS、ipsan、MFS等 ,或者docker命令 ,-v映射磁盘分区。这个我们后面的文章会详细讲解。

四、Docker安装

环境:CentOS Linux release 7.9.2009 (Core)

4.1 依赖安装

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

4.2 配置国内docker-ce的yum源(这里用的是阿里云)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
ls /etc/yum.repos.d/

配置完,执行 ls /etc/yum.repos.d/ 如果看到docker-ce.repo,说明配置成功。

在这里插入图片描述

4.3 安装

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

4.4 修改/etc/sysctl.conf 配置

vim /etc/sysctl.conf   #插入以下内容
net.ipv4.ip_forward = 1


sysctl -p   #生效

cat /proc/sys/net/ipv4/ip_forward  #查看结果,为1开启成功。

4.5 启动服务并设置开机自启

systemctl start docker ## 启动docker
systemctl enable docker  ## 开机自启

docker version # 查看docker 版本
在这里插入图片描述

这里我们很清晰的可以看到docker是一个C/S架构。客户端就是我们的命令行操作,服务端是一个守护进程,在后台运行。

docker info # 查看docker信息

在这里插入图片描述可以看到docker版本,系统内核版本、操作系统、CPU核心数、运行内存、存放镜像位置、registry仓库地址等。

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

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

相关文章

2023年FOF/MOM基金研究报告

第一章 概况 FOF 是 Fund of Funds 的简称,即“基金中的基金”,是一种专门投资于其他投资基金的基金。FOF 并不直接投资股票或债券,其投资范围主要限于其他基金。按照募集方式,FOF 分为公募 FOF 和私募 FOF。 公募 FOF 是指将80…

python小游戏——飞机大战代码开源

♥️作者:小刘在这里 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放,愿所有的美好&#…

明细打印重影方案

一、问题描述生产上出现明细查询打印业务,部分客户打印数据时出现数据重叠现象,不利于客户使用,影响客户体验。二、问题原因对方户名公司名称字段目前没有限制,按照现有的分页处理机制,如果一页纸出现多个公司名称较长…

python中值传递、引用传递、global关键字

结论1、函数中,数值、字符、元组的传递是值传递 b 5 print(id b ,id(b))def change(b):print(\n)#print(在函数change中 修改前 id b ,id(b))b 0print(在函数change中 修改后 id b ,id(b))def print_b():print(\n)print(在函数print b中 b , b)print(在函数pri…

【C++修炼之路】C++入门(下)

👑作者主页:安 度 因 🏠学习社区:StackFrame 📖专栏链接:C修炼之路 文章目录一、前言二、内联函数1、概念2、特性三、auto(C 11)1、概念2、价值3、三个不能四、范围for循环(C11)1、基本使用2、使…

MySQL基础(3)—— MySQL数据类型

文章目录数值类型1、整数类型2、浮点数类型3、定点数类型日期和时间类型1、YEAR2、DATE、TIME、DATETIME3、TIMESTAMP字符串类型1、CHAR(M)2、VARCHAR(M)3、各种 TEXT 类型4、ENUM 类型和 SET 类型二进制类型1、BIT 类型2、BINARY(M) 与 VARBINARY(M)3、BLOB 类型MySQL说到底就…

移动出行2023:聊以新颜待今朝

兔年春节期间,城市再现浓浓烟火气。预订全满的年夜饭、排不到号的奶茶店以及火爆的电影票房等,证明着“吃、游、购、娱”等需求集中释放的“威力”。根据国家税务总局发布的最新数据,今年春节假期,全国消费相关行业销售收入与上年…

最长上升子序列问题(LIS问题)与最长不上升子序列问题的四种方法(c++ 模板代码)

文章目录动态规划树状数组线段树二分查找最大上升子序列问题也叫做LIS问题,与最大公共子序列LCS问题是一类经典问题,在本章我们将总结一下求解LIS最大上升子序列的几种方法,同时也会给出对应的最大不上升子序列的求解方法。 关于LCS问题&…

【表格单元格可编辑】vue-elementul简单实现table表格点击单元格可编辑,点击单元格变成输入框修改数据

前言 这是最近遇到的功能,经常会需要一个表格可以编辑数据 类似于excel那种点击一下单元格就可以编辑数据,修改后鼠标移动出去 光标消失就会保存数据给后台 这里记录一下实现方法,其实也比较简单 就是通过角标来判断显示隐藏的 效果图 代码…

[Android开发基础4] 点击事件的响应与处理

文章目录 方法一:控件的onClick属性 方法二:内部类 方法一:控件的onClick属性 利用控件自带的onClick属性,指定事件处理函数名称即可实现控件点击事件的处理 这里有个小技巧就是当设置完控件的onClick属性后,它会报没…

XXE漏洞常见利用点总结

目录 知识点小结 常用payload 本地文件读取 SSRF 引入外部实体 dtd 信息探测 XXE漏洞攻击 案例演示 案例一(有回显) 案例二(无回显读取本地敏感文件(Blind OOB XXE)) XXE 防御 使用语言中推荐的禁用外部实体的方法 知…

08-linux网络管理-iftop命令详解

文章目录1. 安装2. 基本使用2.1 命令2.2 输出2.3 说明3. 选项3.1 选项说明3.2 几个示例-n(不查找主机名)-i (查看指定网卡流量)-P(显示主机端口)-t(不使用ncurses 界面)4. ncurses界…

IDEA集成Docker插件实现一键自动打包部署

一. 概述 大家部署项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,直接上教程。 二. 配置服务器 1、Docker安装 服务器需要安装Docker,如…

iOS单元测试怎么写 ?

iOS单元测试怎么写 ? 什么是单元测试 ? 针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。对于面向对象编程,最小单元就是方法 iOS 集成了自己的测试框架 OCUnit 和 UITests 为什么单元测试 ? 执行单元测试&#x…

网络基础2-3 ---传输层的UDP协议:DP的特点,UDP的协议格式,UDP的应用

目录 一、tcpdump命令 二、UDP协议 前言 2.1、UDP协议的特点: 2.2、UDP的协议格式 16位的UDP长度: 结合抓包工具:分析一下UDP协议,就利用我们之前写的udp_socket编程 16位的校验和: 2.3、UDP的应用&#xff1…

Python的序列结构及常用操作方法,学完这一篇你就彻底懂了

上一篇:Python流程控制语句之跳转语句 文章目录前言一、索引二、切片三、序列相加四、乘法五、检查某个元素是否是序列的成员六、计算序列的长度、最大值和最小值总结前言 序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每个值…

【论文阅读】Cleanits: A Data Cleaning System for Industrial Time Series

论文来源 标题: Cleanits (Xiaoou Ding,2019) 作者: Xiaoou Ding, Hongzhi Wang, Jiaxuan Su, Zijue Li, Jianzhong Li, Hong Gao 期刊: Proceedings of the VLDB Endowment 研究问题 工业时间序列数据清洗系统 1)缺失值插补,2)匹配不一致…

Maven可选依赖与排除依赖

可选依赖——指的是对外隐藏当前所依赖的资源(不透明) 可选依赖的作用:是隐藏所使用的依赖,用于控制当前依赖资源能否被别人发现 可选依赖的含义:当前工程所依赖的资源,不被其他项目所调用此依赖 pom文件…

DolphinScheduler 3.1.0 海豚集群运维使用问题记录

文章目录海豚常见问题1. 认证问题2. 时区问题3. jdk问题导致的认证问题4. 海豚调度sqoop任务问题(1. 海豚不允许脚本有空行出现(2. 脚本调脚本:权限不足(3. 直接执行某个表的sqoop同步任务:(4. sudo权限不足5. 海豚配置hive/impala数据源问题(1.海豚连接hive数据源配置(2. 配置…

[架构之路-97]:《软件架构设计:程序员向架构师转型必备》-7-需求分析与业务需求领域建模

前言:需求分析工程师工作中业务领域,而业务领域有很多业务领域专有的概念;程序员主要工作在计算机领域,他们没有足够的业务领域的知识识别业务领域的过于专业化的业务需求。为了确保业务需求能够被软件工程师正确无误地实现&#…