认识Docker

12006

学习目标

  • 部署Docker项目:在江湖面板中使用Docker插件部署Docker项目
  • 容器管理:在江湖面板中管理Docker容器,包括启动、停止、删除等操作。
  • 镜像管理:学习如何在江湖面板中管理 Docker 镜像,包括镜像的导入和导出等操作。
  • IP地址池:学习如何在江湖面板中管理 Docker 的 IP 地址池。
  • 仓库管理:学习如何在江湖面板中管理 Docker 的仓库。

1. 安装Docker

Docker是一种开源的容器化技术平台,它允许开发者将应用及其运行环境打包成容器。这些容器是轻量级的、可移植的,并在自己的隔离环境中运行,确保应用在不同环境下的一致性。

Docker解决了“在我机器上运行正常,为什么在其他机器上就不行”的问题。Docker通过容器保证环境的一致性,从而简化了配置过程,提高了软件部署和交付的效率,使其适合于现代的持续集成和持续部署(CI/CD)流程。

江湖面板提供了“Docker”插件,安装之后可以部署Docker项目,以及管理Docker的镜像与容器。

  1. 登录江湖面板。
  2. 点击左侧栏目「软件」,进入软件管理页面。
  3. 在软件管理页面,找到Docker并点击安装。

2. 部署Docker项目

江湖面板中统一规范了Docker项目,默认每个项目都有一个docker-compose文件,并且建议将项目文件存放在/www/wwwroot/目录下

  1. 在江湖面板中,点击左侧栏目「Docker」,进入Docker管理页面。
  2. 点击「项目列表」,点击「新建项目」按钮,打开新建项目弹框。
  3. 在新建项目弹框中,填写项目名称,Compose文件内容。
  4. 点击「提交」,创建项目。
  5. 点击项目操作列的「启动」按钮可以快速启动docker项目。

3. Docker镜像与容器管理

Docker镜像(Image)是轻量级、可执行的独立软件包,包含运行应用所需的代码、库、环境变量和配置文件。容器(Container)是镜像的运行实例,在隔离的环境中执行应用,保持环境的一致性。

在Docker中,镜像和容器的关系类似于蓝图和实际建筑的关系。Docker镜像是一个轻量级、不可变的文件系统快照,它包含运行应用所需的所有内容(代码、库、环境变量、配置文件等)。当你启动一个镜像时,它就会在Docker引擎上创建一个容器。容器是镜像的实时、可写的执行实例,它在隔离的环境中运行,保持与镜像定义的状态一致。可以理解为,镜像是静态的定义,而容器是镜像运行时的动态表现。

容器管理:

  1. 在Docker管理页面,点击「容器列表」,可以看到已创建的容器列表。
  2. 在列表中,可以对容器进行各种操作,如打开容器终端、查看日志、删除等。

镜像管理:

  1. 在Docker管理页面,点击「镜像列表」,可以看到已获取的镜像列表。
  2. 点击获取镜像,填写镜像名称等信息,可以从仓库拉取指定镜像
  3. 在列表中,可以对镜像进行拉取更新、删除等操作。

5. 镜像导出与导入

Docker允许用户将修改过的容器保存为新镜像并导出为tar文件。这样做的好处在于,用户可以轻松地将这个镜像转移到其他服务器上,并在那里快速启动一个与原来完全相同的容器,实现环境的一致性和快速部署。

江湖面板的Docker插件提供了镜像导出的功能:

  1. 在 Docker 插件弹窗中,点击「镜像导出」--> 「镜像打包」按钮,可以将指定的镜像打包为压缩文件
  2. 已打包的镜像文件会出现在下方的列表中,可以对其进行下载、导入、删除操作
  3. 点击上传镜像按钮可以将其他服务器打包的镜像文件上传上来,进行导入等操作。

6. IP地址池

Docker的IP池是一系列预设的IP地址范围,用于自动分配给Docker容器。这不仅确保每个容器都有独立的IP地址,便于网络通信和资源管理,同时也避免了IP地址冲突的问题,保持网络环境的整洁和有序。

  1. 在 Docker 插件弹窗,点击「IP地址池」按钮,进入 IP 地址池管理页面。
  2. 在 IP 地址池管理页面,你可以查看和管理 Docker 的 IP 地址池。

7. 仓库管理

Docker仓库(Docker Repository)是用来存放Docker镜像的地方。它可以类比为代码仓库,但是存放的是Docker镜像而不是代码。Docker仓库可以是公开的,如Docker Hub,任何人都可以下载和使用其中的镜像。也可以是私有的,仅供特定用户或团队使用。

你可以通过江湖面板 Docker 插件,登录并管理Docker仓库:

  1. 在 Docker 插件弹窗,点击「仓库」按钮,进入仓库管理页面。
  2. 在仓库管理页面,你可以查看和管理 Docker 的仓库,点击登录按钮,填写存储库信息,点击登录即可添加仓库
  3. 在仓库管理列表,可以进行修改仓库信息和删除仓库等操作。

8. 案例:使用Docker部署Seatable

SeaTable 是一款以智能表格为基础的新型数字化平台。它支持“文件”、“图片”、“单选项”、“协作人”、“计算公式”等丰富的数据类型,帮助用户用表格的形式来组织和管理各类信息。

你可以尝试使用Docker部署一个Seatable的实例。在304-系统运维高级课程中,提供了Seatable的部署教程

很多应用都是通过Docker部署的。304-系统运维高级课程中,还提供了其他Docker应用的部署教程:

你可以尝试在服务器上部署这些项目。

作业

  1. 请根据本文的内容,部署一个名为nginx的docker项目,docker-compose内容如下:
  1. version: "3"
  2. services:
  3. nginx:
  4. image: nginx:alpine
  5. ports:
  6. - 81:80
  7. - 444:443
  8. volumes:
  9. - ./html:/usr/share/nginx/html
  1. 在 项目目录/html/ 下添加index.html,内容为Hello World!

  2. 服务器开放TCP81端口,使用以下地址访问容器首页,页面显示“Hello World!”

  1. http://x.x.x.x:81