1. 背景描述

本案例基于Ubuntu 22.04 LTS系统部署了iTop平台。iTop是一款遵循ITIL最佳实践的开源IT服务管理(ITSM)平台,其核心是一个功能强大的配置管理数据库(CMDB),用于统一管理IT资产及其关系。它提供了事件管理、服务请求、变更管理等核心ITSM流程,并且具有高度的可定制性和扩展性,能够很好地适应各类组织的运维管理需求。

2. 部署过程

本次部署需要保持网络连接,之后严格遵循下方步骤操作,即可完成安装。

2.1 下载 Docker 官方安装脚本

curl -fsSL https://get.docker.com -o get-docker.sh

2.2 执行安装脚本

sh get-docker.sh
FA913804-5344-43C8-9E4A-6166C1BABDC9.webp

2.3 查看 Docker 是否安装成功

docker --version
3A3CE1E3-DF83-4C12-830F-A415965CC30B.png

2.4 查看 Docker 服务是否启动

systemctl status docker
A4838DAB-3339-44B4-B026-928BB973D133.webp

2.5 运行测试容器

docker run hello-world
31E70806-3D25-4C7B-93DF-FD438BFA96A3.webp

出现以上内容则安装成功,如果提示以下类似报错则是镜像源有问题,需要更换镜像源。

docker: Error response from daemon: failed to resolve reference "docker.io/library/hello-world:latest": failed to do request: Head "https://dockerproxy.cn/v2/library/hello-world/manifests/latest?ns=docker.io": dial tcp 157.240.20.8:443: i/o timeout

2.6 更换 Docker 镜像源地址

vi /etc/docker/daemon.json  #如果文件不存在,直接创建即可。

写入新的镜像源配置,将文件内容修改为以下示例。你可以一次性添加多个镜像源,Docker会按顺序尝试。

{
  "registry-mirrors": [
    "https://registry-1.docker.io",
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
  ]
}

2.7 保存配置并重启 Docker 服务

systemctl daemon-reload
systemctl restart docker

2.8 拉取 ITOP 镜像

docker pull vbkunin/itop
BB63A2DB-D8EC-465F-8EE6-0E63544DFB93.webp

2.9 拉取 MySQL 镜像

docker pull mysql/mysql-server:5.7
07867CA8-59D8-4348-8EA8-3DA323759C55.webp

2.10 创建 ITOP 容器

7F3CAE75-2D50-4A58-B331-3102AA8117CE.png

命令详解:

docker run:运行一个新的容器。

-d:后台运行(detached模式)容器会在后台运行,不会占用当前终端。

-p 8000:80:端口映射,将主机的8000端口映射到容器的80端口,你可以通过 http://localhost:8000 或 http://服务器IP:8000 访问iTop。

--name=my-itop:为容器指定名称,容器名称设为"my-itop",方便后续管理(如停止、重启时引用)。

vbkunin/itop:Docker镜像名称,这是从Docker Hub拉取的官方iTop镜像。

2.11 创建 MySQL 容器

docker run --name=mysql5.7 -p 3307:3306 -p 33067:33060 -d mysql/mysql-server:5.7

命令详解:

docker run:运行一个新的容器。

--name=mysql5.7:为容器指定名称,容器名称设为"mysql5.7",方便后续管理。

-p 3307:3306:第一个端口映射,将主机的3307端口映射到容器的3306端口(MySQL默认端口),你可以通过 mysql -h localhost -P 3307 连接到MySQL。

-p 33067:33060:第二个端口映射,将主机的33067端口映射到容器的33060端口,33060是MySQL X Protocol端口,用于MySQL Shell、X DevAPI等。

-d:后台运行(detached模式),mysql/mysql-server:5.7 - Docker镜像名称和版本标签这是MySQL官方在Docker Hub提供的MySQL Server 5.7镜像。

2.12 查看 MySQL 容器默认密码用于连接 ITOP 数据库

查看日志

docker logs mysql5.7
F4E32CF9-6CC4-4DF7-B6DE-79BA6CF646B2.webp
94BFDE13-ECA5-4344-BFB2-99BE6F1E2B2F.webp

将默认密码复制出来后续安装会使用到。

2.13 连接MySQL

docker exec -it 231 mysql -uroot -p
BBC4B876-2ABD-4F43-B243-073AF1651E4F.webp

命令详解:

docker exec:在运行中的容器内执行命令。

-it:两个参数组合,-i:保持标准输入打开(interactive,交互模式),-t:分配一个伪终端(tty,终端模拟),通常一起使用,以便与容器内的命令交互。

231:容器标识符,这是容器ID的前3位(Docker允许使用部分ID,只要唯一即可),可以通过 docker ps 查看容器ID。

mysql -uroot -p:在容器内执行的命令,mysql:MySQL客户端程序,-uroot:使用root用户登录(u=user),-p:提示输入密码。

2.14 修改 MySQL 默认密码(前面查看日志的那串默认密码)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'itop111111,';
flush privileges;
DC8CA37F-2258-4E75-8967-6417D81ADF2D.webp

2.15 允许 MySQL 远程登录

use mysql;
update user set host='%' where user='root';
flush privileges;

2.16 登录ITOP

浏览器输入:http://ip:8000访问itop页面,初始化创建,按下面图片流程走即可。

AB5F9025-5A9B-4E53-9B39-E0530168A5C0.webp
6994C553-BFA8-44EA-8AB9-6D191B835E10.webp
A1A02559-517D-4337-A36D-39C3AEF018D2.webp
86D3F8F9-5D3F-4EF6-8B9E-86D80EE1E92C.webp
5F594915-8D37-4026-89B8-797244284BCD.webp
4F68CC09-9E36-4FF0-ABE8-187404D15849.webp
CC645ABF-3DF1-492B-A138-9062DAE5E336.webp
F1ECFC49-40B9-40D6-BF6C-9F60313769F3.webp
177DA128-C4F0-4F98-9E8E-E07B496DDABF.webp
F9B5B0A0-52FE-4EA3-9EAD-2ADB69166AF1.webp
1919A6A1-365F-4DC3-816D-A623141E7DD8.webp
4AC898AD-24CF-4243-A00D-0A0C8293E968.webp
30EE6D44-ED0D-4B3D-9616-EC2E0D2E22EB.webp
D72D872D-3375-4461-AFCE-4CE8573A72F6.webp
3511A5AE-0322-4E76-A4BE-164F8F52098F.webp

部署完成!