ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Docker入门与实战——核心概念与安装配置

Docker入门与实战——核心概念与安装配置 核心概念与安装配置1、核心概念1.1、Docker镜像1.2、Docker容器1.3、Docker仓库2、安装Docker引擎2.1、Docker引擎版本2.2、在Linux环境下安装Docker引擎2.2.1、操作系统要求2.2.2、删除旧版本2.2.3、安装依赖2.2.4、开始安装3、安装Docker桌面版3.1、在macOS环境下安装Docker桌面版3.2、在Windows环境下安装Docker桌面版4、配置Docker服务5、推荐实践环境本章首先介绍Docker的三个基本概念镜像(image)、容器(container)和仓库(repository)。通过学习读者将初步理解Docker容器的基本操作和生命周期。接下来笔者将介绍如何在各种主流操作系统平台上安装Docker包括Ubuntu、MacOS和Windows等。最后讲解如何配置Docker服务以便在各种环境下实现高效的容器管理。1、核心概念Docker的大部分操作都紧密围绕三大核心概念镜像、容器和仓库。因此准确把握这三大核心概念对于掌握Docker技术尤为重要。1.1、Docker镜像Docker镜像类似虚拟机镜像包含运行某个应用所需的所有内容如代码、运行时环境、系统库、环境变量以及配置文件等。镜像非常轻量级可以被视为创建容器的基础模板。例如一个镜像可以仅包含Nginx软件和它的运行时依赖环境这样的镜像就是一个Nginx镜像。镜像由多个只读层组成这些层在构建过程中被叠加在一起。相同的层可以在多个镜像中共享从而实现高效存储和传输因为它们仅需要下载一次。用户可以轻松地从官方仓库中下载一个预构建的应用镜像使用。1.2、Docker容器Docker容器可被视为一个轻量级的沙箱它允许应用在隔离的环境中运行。Docker利用容器技术来实现应用程序的隔离和高效部署。容器是基于镜像创建的应用运行实例它们可以被启动、暂停、停止和删除。这些容器彼此相互隔离互不干扰确保了应用程序之间的安全性和独立性。可以将容器理解为一个包含了简化版Linux系统环境包括root用户权限、进程空间、用户空间和网络空间等以及运行在其中的应用程序的封装盒子。通过使用容器可以轻松地在不同环境中部署和管理应用实现快速、可靠和可复用的软件交付。注意镜像是只读的。从镜像创建容器时会在镜像的最上层新建一个可写层。1.3、Docker仓库Docker仓库类似于代码仓库作为一个集中存放镜像文件的平台。有时人们可能会将Docker仓库和仓库注册服务器(Registry)混淆而实际上它们是有所区别的。仓库注册服务器是托管仓库的地方通常会包含多个仓库。每个仓库专门用于存放某一类镜像其中可能包含多个镜像文件通过不同的标签(tag)进行区分。例如用于存放Ubuntu操作系统镜像的仓库称为Ubuntu仓库它可能包括多个不同版本的镜像。仓库注册服务器的示例如图所示。根据所存储的镜像是否公开分享Docker仓库可分为公开(Public)仓库和私有(Private)仓库两种形式。目前最大的公开仓库是由官方提供的Docker Hub其中包含了大量的镜像供用户下载和使用。在国内一些云服务提供商如腾讯云、阿里云等也提供了仓库的本地源等以确保稳定、快速的国内访问体验。对于那些不希望公开分享自己的镜像文件的用户Docker也支持在本地网络内创建仅供自己访问的私有仓库。当用户创建自己的镜像后可以使用push命令将其上传到指定的公有或私有仓库。这样在下次需要在另一台机器上使用该镜像时用户只需从仓库中拉取下载即可。这种方式简化了镜像的共享和部署流程提高了工作效率。可以看出Docker利用仓库管理镜像的设计理念与Git代码仓库的概念非常相似实际上Docker在设计上借鉴了Git的很多优秀思想。2、安装Docker引擎Docker引擎(Docker Engine)是一个用于构建、运行和管理容器化应用的开源软件平台。它是Docker架构的核心组件负责实现容器的创建、运行和监控等功能。Docker引擎由以下三个主要部分组成Docker服务器也称为Docker Daemon或dockerd​一个长期运行的后台进程负责处理DockerAPI请求并管理Docker对象如镜像、容器、网络和存储卷等。RESTful API提供与Docker服务器进行交互的接口。用户和应用程序可以通过发送RESTful请求来执行Docker 操作例如创建、运行和管理容器等。客户端用户可以在终端中输入各种命令CLI将这些命令转换为RESTAPI请求并发送给Docker服务器以执行相应操作。目前主流的操作系统都已经支持Docker下表中给出了服务器操作系统对Docker的支持情况。2.1、Docker引擎版本Docker引擎目前分为两个版本社区版本(Community EditionCE)和企业版本(Enterprise EditionEE)。这两个版本针对不同的用户需求和场景进行了优化。社区版本免费且开源由开源社区进行支持和维护主要面向开发者和小型团队。它提供了基本的Docker功能允许用户快速地构建、运行和管理容器化应用。企业版本按照订阅模式收费由Docker公司进行商业支持针对大型企业和生产环境进行了优化。企业版本通过付费形式提供认证支持、镜像管理、容器托管、安全扫描等高级服务。通常情况下个人或小型团队用户可以使用社区版本满足大部分需求对于大型企业或更严格的生产需求可以购买企业版本服务获得更安全和更稳定的体验。社区版本每个季度三、六、九、十二月份会发行一次稳定(Stable)版本。版本号命名格式为“年份.月份”​如2023年10月发布的版本号为V23.10。同时也会不定期地发布补丁更新和边缘(Edge)版本以修复已知问题和提供新功能预览。本书为了介绍最新的Docker功能选用Docker V23版本使用的操作系统环境是Ubuntu 24.04。2.2、在Linux环境下安装Docker引擎下面以Ubuntu操作系统为例讲解在Linux环境下如何安装Docker引擎。2.2.1、操作系统要求Ubuntu操作系统对Docker的支持非常成熟兼容多种系统架构包括x86_64、armhf、s390x(IBM Z)和ppc64le等只需确保为64位系统即可。Docker当前支持的最低Ubuntu版本为18.04 LTS然而为了获得更好的稳定性和性能推荐使用24.04 LTS版本。此外更新的系统内核有助于充分利用Docker最新特性。用户可以通过如下命令检查自己的内核版本详细信息在Ubuntu发行版中LTS(Long-Term-Support)意味着更稳定的功能和更长期目前为5年的升级支持生产环境中应当使用LTS版本。2.2.2、删除旧版本在安装新版本的Docker之前可能需要先卸载旧版本。旧版本的Docker在系统中可能以docker、docker.io或docker-engine等名称存在。为确保顺利安装新版本可以把它们卸载命令如下卸载软件不会自动清理镜像、容器、存储卷、网络等数据如果想要一个全新的Docker环境可以把/var/lib/docker/目录下的内容清理干净。2.2.3、安装依赖首先需要安装apt-transport-https等软件包来支持HTTPS的源添加Docker官方GPG密钥添加Docker稳定版的官方软件源添加成功后再次更新软件包缓存2.2.4、开始安装安装最新社区版本的Docker引擎安装指定版本的Docker引擎安装成功后会自动启动Docker服务。可以通过如下命令来验证Docker是否安装成功3、安装Docker桌面版Docker桌面版(Docker Desktop)是一款方便用户快速使用Docker相关组件的工具包它提供了一个图形化界面和一套集成工具方便用户直观地管理镜像、容器、网络、应用、配置等。Docker桌面版包括Docker引擎、DockerBuild、Docker Compose和Kubernetes等组件个人用户或小规模企业雇员少于250且年营收不超过1000万美 金可以免费使用。Docker桌面版支持macOS、Windows、Linux等主流操作系统其中Linux系统仅支持x86_64/amd64架构macOS和Windows系统上还支持ARM架构如表所示。3.1、在macOS环境下安装Docker桌面版1.操作系统要求Docker桌面版支持macOS 11(Big Sur)或以上版本推荐使用最新版本的macOS来安装Docker桌面版。2.安装步骤首先访问Docker桌面版下载页面https://www.docker.com/products/docker-desktop如图所示。按照系统信息下载对应版本下载完成后本地将存在一个名为Docker.dmg的安装包。双击Docker.dmg文件开始安装。将Docker.app图标拖放到Applications文件夹中即可完成安装如图所示。在Applications文件夹中找到Docker.app并双击以启动Docker Desktop。在首次运行时可能需要授权应用程序访问系统资源如图所示。随后进入客户端主页面如图所示。完成启动后用户将在macOS的菜单栏上看到一个小鲸鱼形状的Docker图标。单击这个图标可以访问Docker桌面版的设置、管理容器和查看日志等如图所示。3.2、在Windows环境下安装Docker桌面版1.操作系统要求目前支持Docker的Windows版本要求为Windows 1064位​家庭版或者专业版版本大于等于21H2企业版或者教育版版本大于等于21H2。Windows 1164位​家庭版或者专业版版本大于等于21H1(19043)企业版或者教育版版本大于等于21H1(19042)。支持SLAT特性的64位CPU。4GB以上的系统内存。BIOS打开支持虚拟化功能。如果读者在VMWare Esxi或者Azure VM中运行Docker桌面版则需要在对应的Hypervisor管理平台上打开再次虚拟化支持。安装步骤首先访问Docker桌面版下载页面https://www.docker.com/products/docker-desktop。按照系统信息下载对应版本如图2所示。下载完成后本地将存在一个名为Docker Desktop Installer.exe的安装包。双击Docker Desktop Installer.exe文件开始安装。在安装过程中根据提示选择需要的组件和设置如果提示选择Use WSL 2 instead of Hyper-V选项。单击Install按钮开始安装过程。完成安装后安装程序可能会提示重启计算机。请按照提示操作以确保Docker桌面版正确设置并准备运行。重启计算机后用户将在Windows的系统托盘中看到一个小鲸鱼Docker图标。单击这个图标可以访问Docker桌面版进行设置、管理容器和查看日志等。如果用户不是操作系统管理员需要使用管理员账号将自己的账号添加到系统的docker-users组。4、配置Docker服务为了避免每次使用docker命令需要切换到特权身份可以将当前用户加入安装中自动创建的docker用户组命令如下更新用户组信息后退出并重新登录后即可生效。Docker服务启动时实际上调用了dockerd命令支持多种启动参数。因此用户可以直接通过执行dockerd命令来启动Docker服务如下面的命令启动了Docker服务开启Debug模式并监听在本地的2376端口。这些选项可以写入/etc/docker/路径下的daemon.json文件中被dockerd服务启动时读取。当然操作系统也对Docker服务进行了封装以使用Upstart来管理启动服务的Ubuntu系统为例Docker服务的默认配置文件为/etc/default/docker可以通过修改其中的DOCKER_OPTS来修改服务启动的参数例如让Docker服务开启网络2375端口的监听修改之后通过service命令来重启Docker服务RedHat等系统会通过systemd来管理Docker服务对应配置文件路径为/etc/systemd/system/docker.service.d/docker.conf。更新配置后需要通过systemctl命令来管理Docker服务此外如果服务工作不正常可以通过查看Docker服务的日志信息来确定问题例如在RedHat系统上日志文件可能为/var/log/messages在Ubuntu系统上可以执行命令journalctl-u docker.service。每次重启Docker服务后可以通过docker info命令查看Docker信息确保服务已经正常运行。5、推荐实践环境考虑到稳定性本书推荐的实践环境是Ubuntu 24.04 LTS或Debian稳定版本系统并使用Linux 6.0以上的内核。由于Docker中不同版本的API可能存在差异请根据需求选择较新的稳定版本。如果没有特殊说明本书中默认的数据网段地址范围为10.0.0.0/24管理网段地址范围为192.168.0.0/24。此外在执行命令代码时以$开头的命令表示普通用户以#开头的命令表示特权用户(root)。如果用户已添加到docker用户组参考2.4节​大部分情况下不需要管理员权限。否则需要在命令前使用sudo临时提升权限。对于输出结果较长的部分命令仅展示关键部分。对于非Linux系统用户建议在本地使用虚拟机创建Linux环境并在其中执行Docker相关命令。
返回列表