认识Docker
12006学习目标
- 部署Docker项目:在江湖面板中使用Docker插件部署Docker项目
- 容器管理:在江湖面板中管理Docker容器,包括启动、停止、删除等操作。
- 镜像管理:学习如何在江湖面板中管理 Docker 镜像,包括镜像的导入和导出等操作。
- IP地址池:学习如何在江湖面板中管理 Docker 的 IP 地址池。
- 仓库管理:学习如何在江湖面板中管理 Docker 的仓库。
1. 安装Docker
Docker是一种开源的容器化技术平台,它允许开发者将应用及其运行环境打包成容器。这些容器是轻量级的、可移植的,并在自己的隔离环境中运行,确保应用在不同环境下的一致性。
Docker解决了“在我机器上运行正常,为什么在其他机器上就不行”的问题。Docker通过容器保证环境的一致性,从而简化了配置过程,提高了软件部署和交付的效率,使其适合于现代的持续集成和持续部署(CI/CD)流程。
江湖面板提供了“Docker”插件,安装之后可以部署Docker项目,以及管理Docker的镜像与容器。
- 登录江湖面板。
- 点击左侧栏目「软件」,进入软件管理页面。
- 在软件管理页面,找到Docker并点击安装。
2. 部署Docker项目
江湖面板中统一规范了Docker项目,默认每个项目都有一个docker-compose文件,并且建议将项目文件存放在/www/wwwroot/目录下
- 在江湖面板中,点击左侧栏目「Docker」,进入Docker管理页面。
- 点击「项目列表」,点击「新建项目」按钮,打开新建项目弹框。
- 在新建项目弹框中,填写项目名称,Compose文件内容。
- 点击「提交」,创建项目。
- 点击项目操作列的「启动」按钮可以快速启动docker项目。
3. Docker镜像与容器管理
Docker镜像(Image)是轻量级、可执行的独立软件包,包含运行应用所需的代码、库、环境变量和配置文件。容器(Container)是镜像的运行实例,在隔离的环境中执行应用,保持环境的一致性。
在Docker中,镜像和容器的关系类似于蓝图和实际建筑的关系。Docker镜像是一个轻量级、不可变的文件系统快照,它包含运行应用所需的所有内容(代码、库、环境变量、配置文件等)。当你启动一个镜像时,它就会在Docker引擎上创建一个容器。容器是镜像的实时、可写的执行实例,它在隔离的环境中运行,保持与镜像定义的状态一致。可以理解为,镜像是静态的定义,而容器是镜像运行时的动态表现。
容器管理:
- 在Docker管理页面,点击「容器列表」,可以看到已创建的容器列表。
- 在列表中,可以对容器进行各种操作,如打开容器终端、查看日志、删除等。
镜像管理:
- 在Docker管理页面,点击「镜像列表」,可以看到已获取的镜像列表。
- 点击获取镜像,填写镜像名称等信息,可以从仓库拉取指定镜像
- 在列表中,可以对镜像进行拉取更新、删除等操作。
5. 镜像导出与导入
Docker允许用户将修改过的容器保存为新镜像并导出为tar文件。这样做的好处在于,用户可以轻松地将这个镜像转移到其他服务器上,并在那里快速启动一个与原来完全相同的容器,实现环境的一致性和快速部署。
江湖面板的Docker插件提供了镜像导出的功能:
- 在 Docker 插件弹窗中,点击「镜像导出」--> 「镜像打包」按钮,可以将指定的镜像打包为压缩文件
- 已打包的镜像文件会出现在下方的列表中,可以对其进行下载、导入、删除操作
- 点击上传镜像按钮可以将其他服务器打包的镜像文件上传上来,进行导入等操作。
6. IP地址池
Docker的IP池是一系列预设的IP地址范围,用于自动分配给Docker容器。这不仅确保每个容器都有独立的IP地址,便于网络通信和资源管理,同时也避免了IP地址冲突的问题,保持网络环境的整洁和有序。
- 在 Docker 插件弹窗,点击「IP地址池」按钮,进入 IP 地址池管理页面。
- 在 IP 地址池管理页面,你可以查看和管理 Docker 的 IP 地址池。
7. 仓库管理
Docker仓库(Docker Repository)是用来存放Docker镜像的地方。它可以类比为代码仓库,但是存放的是Docker镜像而不是代码。Docker仓库可以是公开的,如Docker Hub,任何人都可以下载和使用其中的镜像。也可以是私有的,仅供特定用户或团队使用。
你可以通过江湖面板 Docker 插件,登录并管理Docker仓库:
- 在 Docker 插件弹窗,点击「仓库」按钮,进入仓库管理页面。
- 在仓库管理页面,你可以查看和管理 Docker 的仓库,点击登录按钮,填写存储库信息,点击登录即可添加仓库
- 在仓库管理列表,可以进行修改仓库信息和删除仓库等操作。
8. 案例:使用Docker部署Seatable
SeaTable 是一款以智能表格为基础的新型数字化平台。它支持“文件”、“图片”、“单选项”、“协作人”、“计算公式”等丰富的数据类型,帮助用户用表格的形式来组织和管理各类信息。
你可以尝试使用Docker部署一个Seatable的实例。在304-系统运维高级课程中,提供了Seatable的部署教程。
很多应用都是通过Docker部署的。304-系统运维高级课程中,还提供了其他Docker应用的部署教程:
- Gitea:https://www.openjianghu.org/doc/page/article/10118
- ElasticSearch:https://www.openjianghu.org/doc/page/article/10096
- Seafile:https://www.openjianghu.org/doc/page/article/11591
你可以尝试在服务器上部署这些项目。
作业
- 请根据本文的内容,部署一个名为nginx的docker项目,docker-compose内容如下:
version: "3"
services:
nginx:
image: nginx:alpine
ports:
- 81:80
- 444:443
volumes:
- ./html:/usr/share/nginx/html
在 项目目录/html/ 下添加index.html,内容为Hello World!
服务器开放TCP81端口,使用以下地址访问容器首页,页面显示“Hello World!”
http://x.x.x.x:81