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
98A17D4B-6D7E-47CE-9BE2-81C69B189B8B.png

2.3 查看 Docker 是否安装成功

docker --version
B58EAF99-D30D-40DD-9DE2-CBEAFBE7FB1D.png

2.4 查看 Docker 服务是否启动

systemctl status docker
7388551D-D17F-44E3-AD96-64849D5DCFC0.png

2.5 运行测试容器

docker run hello-world
560FC2CB-E659-4986-B28A-F6C95A0CD65F.png

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

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 运行测试容器

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
068787BF-FD62-4E25-99FB-F5BC73855E43.png

以上是拉取 ITOP 镜像成功截图。

2.8 拉取MySQL镜像

docker pull mysql/mysql-server:5.7
445DCC3D-CDBD-411C-A94C-F4B7A4DC8659.png

以上是拉取 MySQL 镜像成功截图。

2.9 创建 ITOP 容器

docker run -d -p 8000:80 --name=my-itop vbkunin/itop
050A8D75-C6D9-49D1-BE06-8E25A1A0E94F.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.10 创建 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.11 查看 MySQL 容器默认密码用于连接 ITOP 数据库

查看日志

docker logs mysql5.7
049CF0CD-D8A0-47FE-9F54-D00A3ABB1CF4.png

9D716003-49C3-4F84-AA8A-6F05EC5D9F46.png

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

2.12 连接MySQL

docker exec -it 231 mysql -uroot -p
28FD4D2D-AE68-4899-94EF-28A9D930560A.png

命令详解:

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.13 修改 MySQL 默认密码(前面查看日志的那串默认密码)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'itop111111,';
flush privileges;
1A894577-75C7-4C8F-AE83-CD1E4566FA98.png

2.14 允许 MySQL 远程登录

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

2.15 登录ITOP

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

09D6986A-2BE0-4927-81E3-6AE192272DD4.png

41F59DFF-FACF-41B0-AC77-EC6856858B0E.png

6BF8D2AA-D53A-47C1-99BB-73D1607A3B4F.png

9DFF81F3-1696-476B-978B-A5DC3476E8CF.png

DDAFC924-18F6-467E-AC84-BFB74F62A0F8.png

22C50755-5BE9-4EDD-BD73-D41D0321DFB1.png

E104FFB7-2422-4594-BC01-B518FF3A090D.png

F93B14CF-B373-444E-8653-C33C68945487.png

1615B3E7-6BD2-4F3F-8564-A83295DB451A.png

4C7949DA-6825-487E-A081-46AEB1BC872D.png

245D8F1B-AC72-42DE-926E-DA79DEA011A1.png

29CD3D11-BD32-45C1-87EA-68FE3F3C383C.png

E2608E00-ED6C-4AA1-B5E1-B4F6357BDD1A.png

43257EEB-F253-4A8F-8C80-5CF521670750.png

D645749D-68D0-42D5-8408-E819A8F7763D.png