云原生docker介绍

柒号华仔 柒号华仔     2022-12-02     646

关键词:

作者:柒号华仔

个人主页:欢迎访问我的主页

个人信条:星光不问赶路人,岁月不负有心人。

个人方向:专注于5G领域,同时兼顾其他网络协议,编解码协议,C/C++,linux等,感兴趣的小伙伴可以关注我,一起交流。


1. Docker简介

1.1 Docker定义

Docker 是一个用于开发、发布和运行应用程序的开放平台。Docker 能够将应用程序与基础架构分离,以便快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础架构。通过利用 Docker 快速交付、测试和部署代码的方法,您可以显著减少编写代码和在生产环境中运行之间的延迟。

通俗来讲,docker是一个类似于虚拟机的容器,这个容器里面可以放应用程序,代码库,编译工具以及构建运行环境。容器轻量可移植,以后发布程序直接发布docker就行,从源主机搬运整个docker到目标机上,即完成了程序发布,省去了重新构建运行环境的复杂过程和时间。容器完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。隔离和安全性允许您在给定主机上同时运行多个容器。

Docker 提供工具和平台来管理容器的生命周期:

  • 使用容器开发应用程序及其支持组件。
  • 容器成为分发和测试应用程序的单元。
  • 准备就绪后,将应用程序部署到生产环境中,作为容器或编排的服务。无论生产环境是本地数据中心、云提供商还是两者的混合,这都是一样的。

1.2 Docker功能

快速迭代应用程序 Docker 容器为开发人员和测试人员提供了统一的运行环境和应用程序,通过容器迁移带来的标准化环境简化了开发生命周期,容器非常适合持续集成、持续交付和持续测试工作流程,也就是devpos。

便捷部署和扩展 Docker 基于容器的平台允许高度可移植的工作负载。Docker 容器可以在开发人员的本地电脑、公司服务器或者虚拟机、云主机等环境运行。 Docker 的可移植性和轻量级特性还使得动态管理工作负载、根据业务需求近乎实时地扩展或拆除应用程序和服务变得容易。

在同一设备上运行多个容器 Docker 轻量而快速,它比虚拟机所需的硬件资源要少的多,因此它可以为经济高效的替代虚拟机,同时在一台设备上可以运行多个容器,节省开销。

1.3 Docker应用范围

Docker 容器无处不在:Linux、Windows、数据中心、云、无服务器等。

【云原生】Docker介绍_docker

Docker 容器技术于 2013 年作为开源Docker Engine推出。 它利用了围绕容器的现有计算概念,特别是在 Linux 中,称为 cgroups 和命名空间的原语。Docker 的技术是独一无二的,因为它关注开发人员和系统运营商将应用程序依赖项与基础设施分离的要求。 Linux的成功推动了与 Microsoft 的合作,将 Docker 容器及其功能引入了 Windows Server。 Docker 及其开源项目提供的技术,Moby 已被所有主要数据中心供应商和云提供商所利用。这些提供商中许多都将 Docker 用于其容器原生 IaaS 产品。此外,领先的开源无服务器框架利用 Docker 容器技术。

2. 容器与虚拟机

容器和虚拟机具有相似的资源隔离和分配优势,但功能不同,因为容器虚拟化的是操作系统而不是硬件。容器更便携、更高效。

容器

【云原生】Docker介绍_客户端_02

容器是应用层的抽象,它将代码和依赖项打包在一起。多个容器可以在同一台机器上运行,并与其他容器共享操作系统内核,每个容器在用户空间中作为独立进程运行。与 VM 相比,容器占用的空间更少(容器映像的大小通常为数十 MB),可以处理更多应用程序并且需要更少的 VM 和操作系统。

虚拟机

【云原生】Docker介绍_应用程序_03

虚拟机 (VM) 是物理硬件的抽象,可将一台服务器变成多台服务器。管理程序允许多个虚拟机在单台机器上运行。每个 VM 都包含操作系统、应用程序、必要的二进制文件和库的完整副本占用数十 GB。VM 的启动速度也可能很慢。

3. Docker结构

3.1 Docker 架构

Docker 使用客户端-服务器架构。Docker客户端与 Docker守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以 在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护程序使用 REST API,通过 UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许使用由一组容器组成的应用程序。

【云原生】Docker介绍_docker_04

  • Host(主机):安装了Docker程序的机器(Docker直接安装在操作系统之上)。
  • Client(客户端):连接docker主机进行操作。
  • Registry(仓库):用来保存各种打包好的软件镜像。
  • Images(镜像):软件打包好的镜像,放在docker仓库中。
  • Container(容器):镜像启动后的实例称为一个容器,容器是独立运行的一个或一组应用。

3.2 Docker三要素

Docker 包括三个基本要素:

  • 镜像(Image):镜像是用于创建容器的只读模板,通过Docker build命令创建,镜像相当于一个 root 文件系统。镜像就是静态的模板,运行起来的镜像就是容器。
  • 容器(Container):容器是镜像的实例,一个镜像可以创建多个容器,镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。容器可类比一个简易的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。
  • 仓库(Repository):仓库用来存储Docker镜像,可自建私有Registry和使用公用Registry。官方公用仓库为dockerhub(​​https://hub.docker.com​​),镜像的安全性和可靠性比较有保障。

猿创征文|云原生领域之容器日常使用工具推荐(代码片段)

猿创征文|云原生领域之容器日常使用工具推荐一、云原生介绍1.云原生定义2.容器技术简介3.云原生相关工具导航二、Docker1.Docker介绍①Docker简介②Docker特点③Docker的三个基本概念④Docker的架构图2.Docker的优势3.Docker的使用效果①... 查看详情

云原生之docker实战使用docker部署反向代理nginxproxymanager(代码片段)

【云原生之Docker实战】使用Docker部署反向代理NginxProxyManager一、NginxProxyManager介绍1.NginxProxyManager介绍2.NginxProxyManager特点二、检查docker状态三、安装docker-compose1.安装docker-compose2.给docker-compose文件添加执行权限3.查看docker-compose版 查看详情

云原生之docker实战使用docker部署picuploader图床工具

【云原生之Docker实战】使用docker部署PicUploader图床工具一、PicUploader介绍1.PicUploader介绍2.PicUploader特点二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、检查docker环境1.检查docker版本2.检查docker状态四、安装docker-compose... 查看详情

云原生之docker实战使用docker部署wiznote私人笔记系统

【云原生之Docker实战】使用docker部署Wiznote私人笔记系统一、Wiznote介绍1.Wiznote介绍2.Wiznote特点二、检查docker状态1.检查docker版本2.检查docker状态三、安装Wiznote1.创建数据存储目录2.运行Wiznote容器3.检查容器状态四、访问Wiznote五、Wiz... 查看详情

云原生之docker实战使用docker部署宝塔面板

【云原生之Docker实战】使用Docker部署宝塔面板一、宝塔面板介绍二、检查本地docker环境1.检查系统版本2.检查内核版本3.检查docker版本三、下载宝塔镜像四、部署宝塔面板1.创建挂载目录2.创建宝塔容器3.查看宝塔容器状态五、访问... 查看详情

云原生之docker实战使用docker部署kodbox私有云

【云原生之Docker实战】使用docker部署kodbox私有云一、kodbox介绍1.kodbox简介2.kodbox功能与特点二、检查本地docker状态1.检查docker版本2.检查docker状态三、安装kodbox1.创建安装目录2.编辑docker-compose.yaml脚本3.创建相关容器4.查看容器状态... 查看详情

云原生之docker实战使用docker部署siyuan个人笔记系统

【云原生之Docker实战】使用Docker部署siyuan个人笔记系统一、siyuan介绍二、检查宿主机系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4forwarding四、下载siyuan镜像五、创建siyuan容器1.创建目录2.目录授... 查看详情

云原生之docker实战使用docker部署glances系统监控工具

这里写目录标题一、glances介绍1.glances简介2.glances特点二、本地docker环境检查1.检查docker版本2.检查docker状态3.检查dockercompose版本三、glances镜像介绍四、下载glances镜像五、使用docker-cli部署glances六、使用dockercompose部署glances1.创建... 查看详情

云原生之docker实战使用docker部署prometheus服务监控系统

【云原生之Docker实战】使用Docker部署Prometheus服务监控系统一、Prometheus服务监控系统介绍1.Prometheus介绍2.Prometheus特点3.Prometheus架构图3.Prometheus的组件二、检查本地系统版本三、检查docker环境1.检查docker版本2.检查docker状态四、安装... 查看详情

云原生之docker详细知识技能介绍与实战

...Docker。Docker容器技术,也是一种虚拟化技术。vm:linuxcentos原生镜像(一个电脑),隔离,需要开启多个虚拟机!docker:隔离,镜像(最核心的环境4m+jdk+mysql)十分小巧,运行镜像就可以了Docker基于Go语言开发的官网:https://www.docker.co... 查看详情

云原生之docker实战使用docker部署cloudreve公有云文件系统

【云原生之Docker实战】使用Docker部署Cloudreve公有云文件系统一、Cloudreve介绍1.Cloudreve简介2.Cloudreve特点二、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4forwarding4.检查Docker版本三、检查宿主机系统版本四、安... 查看详情

云原生之使用docker部署ntp时间服务器(代码片段)

云原生之使用docker部署NTP时间服务器一、chrony介绍二、容器镜像介绍三、检查本地docker状态四、下载ntp镜像五、部署ntp服务器1.创建ntp容器2.查看ntp容器状态六、检查ntp服务器的时间源七、客户端测试1.客户端查看chronyd服务状态2.... 查看详情

云原生之docker实战部署docker管理平台shipyard

【云原生之Docker实战】部署docker管理平台shipyard一、shipyard介绍1.shipyard简介2.shipyard特点二、检查docker状态1.检查docker版本2.检查docker状态三、下载所需镜像1.下载alpine镜像2.下载library/rethinkdb镜像3.下载microbox/etcd镜像4.下载shipyard/doc... 查看详情

猿创征文|云原生之docker使用docker部署flare个人导航网页(代码片段)

猿创征文|【云原生之Docker】使用Docker部署Flare个人导航网页一、卷首语二、Flare介绍1.Flare介绍2.Flare的硬件配置要求3.Flare的特点三、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4forwarding四、安装docker-com... 查看详情

云原生之docker实战使用docker部署speedtest测速平台

【云原生之Docker实战】使用Docker部署speedtest测速平台一、speedtest介绍1.speedtest简介2.adolfintel/speedtest镜像简介3.speedtest特点二、检查本地docker1.检查docker版本2.检查docker状态四、下载adolfintel/speedtest镜像五、安装speedtest测速平台1.运... 查看详情

云原生之docker实战使用docker部署webssh工具

【云原生之Docker实战】使用docker部署webssh工具一、webssh介绍二、检查服务器系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker版本四、安装docker-compose1.下载docker-compose二进制包2.给文件增加执行权限3.检查docker-compose... 查看详情

云原生之docker实战使用docker部署pingvinshare文件共享平台

【云原生之Docker实战】使用docker部署PingvinShare文件共享平台一、PingvinShare介绍1.PingvinShare简介2.PingvinShare特点二、检查本地docker环境1.检查docker版本2.检查docker状态3.检查dockercompose版本三、下载PingvinShare镜像四、docker-cli部署PingvinSh... 查看详情

云原生之docker实战使用docker部署家庭dos游戏服务器(代码片段)

【云原生之Docker实战】使用docker部署家庭DOS游戏服务器一、DOS游戏网页版介绍二、检查宿主机系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker版本四、下载oldiy/dosgame-web-docker镜像五、部署游戏服务器1.创建容器2.查... 查看详情