Docker系列 01

简介: Docker系列 01

前言

学完这篇文章,你会知道Docker是什么?解决了什么问题以及如何安装Docker。在后续的系列文章中,我们会陆续介绍Docker的常用命令、镜像原理、Dockerfile以及网络管理等,让你对Docker有较为系统的认知,持续关注吧。

从环境配置说起

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

在容器技术出现以前,虚拟机技术是一种将程序连同操作系统打包的解决方案。可以先搭好一套虚拟机环境,然后给测试和运维clone出来使用,但是这种方案缺点也很明显:

(1)资源占用多:相较于一个单纯的程序,操作系统是一个很臃肿的程序。我们知道操作系统运行起来是需要占用很多资源的,大家对此肯定深有体会,刚装好的系统还什么都还没装,内存几个G没了,磁盘几十个G没了;

(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)

3.1 依赖安装
yum install -y yum-utils device-mapper-persistent-data lvm2
3.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,说明配置成功。

3.3 安装
yum -y install docker-ce doker-ce-cli containerd.io
3.4 修改/etc/sysctl.conf 配置
vim /etc/sysctl.conf   #插入或修改以下内容
net.ipv4.ip_forward = 1
sysctl -p   #生效
cat /proc/sys/net/ipv4/ip_forward  #查看结果,为1开启成功。
3.5 启动服务并设置开机自启
systemctl start docker ## 启动docker
systemctl enable docker  ## 开机自启
3.6 关闭docker
systemctl stop docker ## 停止docker
systemctl disable docker  ## 关闭开机自启
3.7 验证
docker version  # 查看docker版本信息
docker info # 查看docker详细信息


推荐一个零声学院免费教程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,点击立即学习:

相关文章
|
5月前
|
人工智能 云计算
共筑AI产教融合新生态:华中科技大学AI Day成功举办
华中科技大学联合阿里云举办“AI Day”,以“AI+X学科融合与实践创新”为主题,通过教师研讨会与学生实训营,推动人工智能教育改革与产教融合,共筑高校AI人才培养新生态。
|
5月前
|
数据采集 JSON API
微店API使用指南:高效获取商品列表数据
本文介绍如何使用Python爬虫调用微店item_search接口,根据关键词搜索商品并获取商品列表数据,涵盖请求方式、JSON数据解析、分页参数设置及筛选排序功能,适用于电商数据分析与竞品研究。
|
5月前
|
存储 Kubernetes Perl
Kubernetes中Pod的常用命令及镜像拉取策略详解
理解Kubernetes中Pod的操作和配置策略,对于保障应用的顺利部署和运行至关重要。通过掌握这些命令和策略,你可以更有效地管理和优化你的Kubernetes集群。
501 17
|
6月前
|
人工智能 自然语言处理 机器人
AI电话客服的服务质量提升路径:关键技术与典型应用场景解析
AI电话客服正从基础语音工具进化为能处理复杂业务的智能体。本文深入解析服务质量提升的关键技术路径与行业应用,涵盖语音识别、情感分析、多轮对话等核心技术,以及智能外呼、自动质检、客户数据分析等典型场景,助力零售、电商、制造、互联网等行业构建高效、有温度的智能客服体系,推动人机协同服务升级。
537 1
|
12月前
|
人工智能 监控 算法
卷不过AI就驯服它!AI训练师速成攻略
这是一篇关于AI训练师职业的全面指南。文章从“驯服AI”的理念出发,将AI训练师比作“幼儿园老师”,详细描述了该职业的工作内容、入行技能要求、成长路径及工作日常。新手可以从基础的数据标注做起,逐步学习Python、数学知识和工具使用,通过三年计划实现职业进阶。文中还分享了摸鱼技巧、崩溃与高光时刻,以及避坑建议和未来转型方向。无论是在电商公司给商品打标签,还是训练医疗AI辅助诊断,这个职业都充满挑战与机遇。最后鼓励大家主动拥抱变化,把AI变成自己的左膀右臂,而非竞争对手。
2935 3
|
7月前
|
存储 运维 前端开发
如何开发设备管理系统中的设备维护管理板块 ?(附架构图+流程图+代码参考)
设备管理系统中的维护管理是企业高效运营的关键。本文详解设备维护管理模块的设计与实现,涵盖功能规划、业务流程、技术方案及开发技巧,助力企业构建科学的设备维护体系,提升设备利用率与生产效率。
|
7月前
|
JSON 数据可视化 数据安全/隐私保护
屏幕自动点击器, 屏幕连点器,手机自动点击器【autojs】
提供三种点击模式:固定坐标点击、随机区域点击和录制回放功能
|
人工智能 自然语言处理 测试技术
文生图参数量升至240亿!Playground v3发布:深度融合LLM,图形设计能力超越人类
【10月更文挑战第29天】Playground v3(PGv3)是最新发布的文本到图像生成模型,其在多个测试基准上取得了最先进的性能。与传统模型不同,PGv3采用了一种全新的结构,将大型语言模型与图像生成模型深度融合,展现出卓越的文本提示遵循、复杂推理和准确的文本渲染能力。此外,PGv3还具备超越人类的图形设计能力,支持精确的RGB颜色控制和多语言理解,为设计师和创意工作者提供了强大的工具。尽管存在一些挑战,但PGv3的发布标志着文本到图像生成技术的重大突破。
391 6
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT的名字由
【10月更文挑战第13天】
669 0
在Linux中,如何检查磁盘空间使用情况?
在Linux中,如何检查磁盘空间使用情况?

热门文章

最新文章