Docker 基本概述

Docker 是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2023 年最新 Docker 容器技术基础详细教程(更新中)-LMLPHP

Docker 官网:https://www.docker.com

Docker 有助于更快地交付应用,它可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker 可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。

Docker 中的隔离机制是如何实现的?

Docker 主要借助 Linux 内核技术 Namespace 来实现隔离。Namespace 是 Linux 内核的一种功能,它能够将进程及其相关的资源(如文件系统、网络等)隔离在一个独立的、互不干扰的环境中,使得每个进程都有其独立的视角。

Namespace 应用方面

PID命名空间:这是隔离进程的关键,它使得每个容器都有其独立的进程空间,无法影响其他容器或主机的进程。

文件系统命名空间:这是用来隔离文件系统的。每个容器都有其独立的文件系统,包括 /dev、/proc、/bin、/etc、/lib、/usr 等目录,这些都是容器启动时由宿主机提供的。Docker 使用的是 overlay 或 overlay2 存储驱动,它将不同容器的文件系统叠加在一起,但每个容器都有其独立的视角。

网络命名空间:这是用来隔离网络资源的,每个容器都有其独立的网络环境,包括 IP 地址、端口等。

用户命名空间:这是用来隔离用户和权限的,每个容器都有其独立的安全上下文,包括用户、密码、权限等。

总的来说,Docker通过使用Linux Namespace和相关的技术,为容器提供了隔离后的执行环境,使得每个容器都有其独立的视角和资源。

下载安装 Docker

首先进行下载 windows 版本的 installer 安装包

2023 年最新 Docker 容器技术基础详细教程(更新中)-LMLPHP

2023 年最新 Docker 容器技术基础详细教程(更新中)-LMLPHP

初次启动 Docker Desktop 时,您可能需要登录到 Docker Hub https://hub.docker.com/ 的帐户。特别注意:和 Docker 官网不同,注册页面在国内访问需要加速器。

环境问题

2023 年最新 Docker 容器技术基础详细教程(更新中)-LMLPHP

解决方案:更新 wsl

C:\Users\Administrator>wsl --update
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。

Windows Subsystem for Linux(WSL)是一个在 Windows 10 上能够运行原生 Linux 二进制可执行文件的兼容层。它是由微软和 Canonical 公司合作开发,其目标是使纯正的 Ubuntu、Debian 等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。如果使用 Windows 10 2004 以上,可以通过 WSL 2 来窗口化运行桌面应用,也不需要另外安装其他的 X 服务器。

2023 年最新 Docker 容器技术基础详细教程(更新中)-LMLPHP

配置 Docker 镜像

“registry-mirrors” 是 Docker 的一个配置项,它的中文意思是“注册表镜”。这个配置项主要被用来修改 Docker 在启动过程中加载的镜像。当 Docker 启动时,它会自动从 Docker Hub 上拉取镜像来使用。通过使用 “registry-mirrors”,你可以指定一个或多个镜像存储库作为拉取镜像的镜像源,以替代默认的 Docker Hub。这样可以提高拉取镜像的速度,并且可以在网络连接不好的情况下使用缓存的镜像。需要注意的是,如果使用registry-mirrors,需要在启动 Docker 时加上 --registry-mirror 参数,例如 “docker -d --registry-mirror=http://<your-mirror-domain>”

2023 年最新 Docker 容器技术基础详细教程(更新中)-LMLPHP

"registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com",
    "https://mirror.ccs.tencentyun.com"
]  

Docker 组成

2023 年最新 Docker 容器技术基础详细教程(更新中)-LMLPHP

Kubernetes 基本概述

首先介绍下 Kubernetes,它是一个开源的容器集群管理系统,它用于在多个主机上自动化部署、维护和扩展容器化的应用。Kubernetes 的目标是简化和高效地实现容器化的应用部署,它提供了应用部署、规划、更新和维护的一种机制。

Kubernetes 系统有什么样的应用场景?

自动化容器部署:Kubernetes可以自动化容器的部署、管理和扩展,从而使应用程序能够更快速、高效地运行。
水平扩展和自动负载均衡:Kubernetes可以自动扩展容器实例的数量,并使用负载均衡器将流量分配到这些实例之间,以实现高可用性和更好的性能。
无缝的应用程序更新:Kubernetes可以实现滚动更新,从而在不中断应用程序服务的情况下更新应用程序版本。
弹性伸缩:Kubernetes可以根据需要自动伸缩应用程序,以应对峰值流量或负载波动。
容器存储管理:Kubernetes可以管理容器的存储需求,从而帮助应用程序访问数据存储。
跨云平台应用程序部署:Kubernetes可以在多个云平台之间轻松部署和管理应用程序,从而帮助企业实现多云策略。
09-15 07:29