Docker 的工作原理及安装步骤【云原生】

这篇具有很好参考价值的文章主要介绍了Docker 的工作原理及安装步骤【云原生】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Docker 的工作原理

大型项目组件较多,运行环境也较为复杂,部署会碰到一些问题:
① 依赖关系复杂,容易出现兼容性问题;
② 开发、测试、生产环境有差异。

问题一:Docker 是如何解决不同组件之间依赖的兼容性问题的?

Docker 会将应用的函数库、依赖、配置与应用一起打包,然后将每个应用放到一个隔离容器去运行,避免相互干扰。

问题二:不同环境的操作系统不同,Docker 又是如何解决的呢?

所有 Linux 内核的操作系统都可以分为两层,一层是大家共享的 Linux 内核,区别就在于另一层的系统应用不同。
内核负责与硬件交互,提供操作硬件的指令,系统应用负责将内核指令封装为函数,便于程序员使用,最后用户程序基于函数库实现功能。

底层内核可能一样,但是不同的系统应用有着不同的函数库,所以 A 操作系统下的应用是不能在 B 操作系统中运行的。

于是 Docker 将用户程序与它所对应的函数库一起打包,当 Docker 运行到不同的操作系统时,直接基于打包的库函数,借助操作系统的 Linux 内核来实现跨系统运行。

Docker 就是一个快速交付应用、运行应用的技术。

总结:
① Docker 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意 Linux 操作系统;
② 运行时利用沙箱机制形成隔离容器,各个应用互不干扰;
③ 启动、移除都可以通过一行命令来完成,方便快捷。

2. Docker 与虚拟机

虚拟机是在操作系统中模拟硬件设备,然后运行在另一个操作系统,比如在 Windows 系统里面运行 Centos 系统,这样就可以运行任意的 Centos 应用了。

虚拟机相当于在一个操作系统里面装了另一个操作系统,那么应用在执行的时候会先去调用内置操作系统,而内置操作系统会与 Hypervisor 交互,然后把信息传递给外置操作系统,最终由外置操作系统来调用计算机硬件,所以总的来说,虚拟机应用的执行要经过操作系统的层层传递,性能肯定是不太好的。

而 Docker 只是用了另一个操作系统的函数库而已,实际在执行的时候是直接调用操作系统内核的,性能要比虚拟机好。

Docker 的工作原理及安装步骤【云原生】,Docker,docker,云原生,容器

总结:
① Docker 是一个系统进程,而虚拟机是在操作系统中的操作系统;
② Docker 体积小、启动快、性能好,虚拟机体积大、启动慢、性能也一般。

3. Docker 架构

镜像: Docker 将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。也可以认为,镜像就是硬件中的文件。

容器: 镜像中的应用程序运行后形成的进程就是容器,只是 Docker 会给容器做隔离,互相不可见。可以认为,镜像运行起来就是容器。

容器里面会有独立的 CPU 资源、内存资源,甚至还有独立的文件系统,于是该进程就会以为它是这台机器上唯一的线程,从而起到隔离效果。

镜像都是只读的,写操作会造成镜像污染。镜像是公共的,所以写数据应该从镜像拷贝一份 data,写到自己的独立容器里。 镜像不会被干扰,所以我们也可以把自己的镜像共享给别人去使用。

如何把自己的镜像共享给别人?这里需要借助一个 Docker 镜像的托管平台 —— DockerHub。利用 Docker 可以构建出各种各样的镜像,而后我们把这些镜像上传到 DockerHub 服务器上就可以供别人使用了。

Docker 是一个 CS 架构的程序,由两部分组成:

服务端: Docker 守护进程,负责处理 Docker 指令,管理镜像、容器等;
客户端: 通过命令或 RestAPI,可在本地或远程向服务端发送指令。(本地用命令,远程用 RestAPI)

基本操作:
创建镜像: 客户端通过 docker build 命令构建镜像,命令到达服务端后,会被 Docker 的守护进程接收和处理,然后根据命令信息构建成一个镜像。
拉取镜像: 通过 docker pull 命令,将请求发送到服务端,之后我们的守护进程就会去 Registry 上拉取指定的镜像 。
运行镜像: docker run 命令会通知服务端的守护进程,帮助我们完成容器的创建。

一般我们直接从 Registry 上拉取镜像就好,发起命令 → 拉取镜像 → 将镜像创建成容器运行,完成部署!

4. 安装 Docker

① 首先需要虚拟机联网,然后安装 yum 工具。

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

Docker 的工作原理及安装步骤【云原生】,Docker,docker,云原生,容器

② 更新本地镜像源,默认 docker 的安装是在国外速度很慢,所以我们通过 yum 工具配置了安装仓库在阿里云仓库。

三条命令一个一个地运行!

#设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

Docker 的工作原理及安装步骤【云原生】,Docker,docker,云原生,容器

③ 然后输入命令安装 Docker,稍等片刻 Docker 即可安装成功。

yum install -y docker-ce

Docker 的工作原理及安装步骤【云原生】,Docker,docker,云原生,容器

④ 关闭防火墙,Docker 应用需要各种端口,逐一修改防火墙设置非常麻烦,因此这边建议直接关闭防火墙,当然这只是在练习,实际生产中肯定是不能这么做的。

我们在启动 Docker 前,一定要先关闭防火墙!

#关闭防火墙
systemctl stop firewalld
#禁止开机启动防火墙
systemctl disable firewalld
#查看防火墙状态(dead表示已关闭)
systemctl status firewalld

Docker 的工作原理及安装步骤【云原生】,Docker,docker,云原生,容器

⑤ 通过命令启动 Docker。

#启动docker
systemctl start docker
#停止docker
systemctl stop docker
#重启docker
systemctl restart docker
#查看docker版本
docker -v
#查看docker状态(running表示启动成功)
systemctl status docker

Docker 的工作原理及安装步骤【云原生】,Docker,docker,云原生,容器

5. 配置镜像加速

Docker 官方镜像仓库网速较差,我们需要设置国内镜像,来提高下载速度。

① 执行命令,配置镜像加速器,将来我们下载镜像都会直接从阿里云上下载

以下命令请一条一条地执行!

#创建一个文件夹
sudo mkdir -p /etc/docker
#新建文件并输入内容
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://n0dwemtq.mirror.aliyuncs.com"]
}
EOF
#重新加载文件
sudo systemctl daemon-reload
#重启docker
sudo systemctl restart docker

Docker 的工作原理及安装步骤【云原生】,Docker,docker,云原生,容器文章来源地址https://www.toymoban.com/news/detail-813814.html

到了这里,关于Docker 的工作原理及安装步骤【云原生】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker安装运行Nginx容器(纯步骤)

    本文章只有步骤,没有原理解释,只做平时学习提示。提前说明:由于nginx里的配置文件比较多,所以本文章不对此配置文件解释而且会有一些小问题,这个你酌情操作,但不影响你nginx容器的创建你可以在容器创建成功后再寻找别的文章对nginx的相关配置进行操作。 创建可以

    2024年02月01日
    浏览(87)
  • 『 云原生·Docker』Docker容器相关操作(二)

    本系列主要分为以下六大部分,正在更新中,尽请期待! 『 云原生·生之门』 『 云原生·前置知识』 『 云原生·Docker』 『 云原生·Kubernetes』 『 云原生·KubeSphere』 『 云原生·DevOps』 🚩点击关注本专栏 提示:已经更新的或正在更新的文章前面打勾了哈! 容器是 Docker的另一个

    2024年02月06日
    浏览(46)
  • 【云原生丶Docker】Docker容器常用命令大全

    在 Docker 核心概念理解 一文中,我们知道 Docker容器 其实就是一个轻量级的沙盒,应用运行在不同的容器中从而实现隔离效果。容器的创建和运行是以镜像为基础的,容器可以被创建、销毁、启动和停止等。本文将介绍下容器的这些常用操作命令。 docker run 命令表示新建并运

    2024年02月04日
    浏览(51)
  • 云原生Docker容器管理

    目录 docker容器的管理 容器创建  查看容器的运行状态 启动容器 创建并启动容器  终止容器运行  删除容器  容器的进入  查看容器详细信息 复制到容器中 从容器复制文件到主机 容器的导出与导入 导出  导入 相当于一个进程,性能接近于原生,几乎没有损耗; docker容器在

    2024年02月07日
    浏览(55)
  • 【云原生-Docker】docker容器自定义DNS解析

    在特定的情况下,或者在网络策略特殊定义下,需要自定义dns进行域名访问,在宿主机上配置了域名解析,对于docker容器无效。 对于局域网内的域名解析,Docker 需要到 Docker 容器中配置 hosts 文件 。 docker-compose配置【推荐】 通过增加 extra_hosts 属性 进行host配置 进入容器内部

    2024年02月03日
    浏览(43)
  • 【云原生 • Docker】docker 环境搭建、docker 与容器常用指令大全

    目录 一、Docker 环境搭建 1. 准备工作(已有 Linux 环境可省略) 2. 安装 Docker 3. 设置 ustc 镜像 二、Docker/容器操作命令汇总 1. Docker 操作命令 2. 镜像相关命令 3. 查看容器 4. 创建容器 5. 停止与启动容器 6. 文件挂载 7. 目录挂载 8. 查看容器 IP 地址 9. 删除容器 1. 准备工作(已有

    2024年01月16日
    浏览(68)
  • 云原生——Docker容器化实战

    ❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽 个人简介:云计算网络运维专业人员 🐽 前言        \\\"Docker\\\"一词指代了多个概念,包括开源社区项目、开源项目使用的工具、主导支持此类项目的公司 Docker Inc.,以及该公司官方支持的工具。这些

    2024年02月11日
    浏览(39)
  • 容器和云原生(二):Docker容器化技术

      目录 Docker容器的使用 Docker容器关键技术 Namespace  Cgroups UnionFS         首先直观地了解docker如何安装使用,并快速启动mysql服务的,启动时候绑定主机上的3306端口,查找mysql容器的ip,使用mysql -h containerIP 或者127.0.0.1就可以直接访问mysql服务,暂不考虑mysql的存储卷。    

    2024年02月12日
    浏览(46)
  • docker删除容器(步骤详解)

    要在Docker中删除容器,需要使用命令docker rm。 下面是详细步骤: 1. 首先,使用 docker ps 命令查看当前正在运行的容器。 这个命令会列出所有正在运行的容器的ID、名称、状态等信息。 如果没有正在运行的容器可以通过 docker ps -a 查看当前所有的容器 2. 找到要删除的容器的I

    2024年02月14日
    浏览(35)
  • Docker容器原生健康检查机制详解

    健康检查机制是用来检查服务的可用性,当服务不可用时及时重启以恢复可用性。之前的文章《Kubernetes中配置livenessProbe、readinessProbe和startupProbe》讲解了Kubernetes中的各种健康检查类型和配置方法,本篇文章讲解一下docker容器的健康检查机制。 看过上文提到的那篇文章的同学

    2024年02月02日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包