1. docker部署phpIPAM
docker环境默认已经部署完成
IPAM介绍
IP地址管理(IPAM,IP Address Management的缩写)工具能够帮助网络工程师快速识别企业网络中某个IP地址当前是否可用。
IPAM工具能定期扫描子网,提供子网中IP地址的可用性状态。通过SNMP抓取设备的MAC、ARP等相关信息
传统网管软件Solarwinds Orion、ManageEngine OpUtils(卓豪)都有成熟IPAM模块,而且能与网管平台更好结合,实现IP地址与网管采集信息的关联与展示,但收费不菲,需要在Windows Server系统上部署,系统资源占用较大,如果仅仅只是为IPAM功能,部署、维护一套并不合算。我部署一套IPAM仅想解决Excel记录IP地址不灵活,希望能实现IP、MAC、使用人、部门、使用地点等这类信息的记录,自动化扫描(监控)地址使用情况,同时不希望占用太大系统资源(基于Linux系统),全部容器化部署(包括IPAM和扫描代理)。
1.1 docker-compose文件编写
在对应的目录下编写docker-compose.yml文件
version: '3'
services:
phpipam-web:
privileged: true
image: phpipam/phpipam-www:latest
ports:
- "80:80"
environment:
- TZ=Asia/Shanghai
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_PASS=123456
- IPAM_DATABASE_WEBHOST=%
restart: unless-stopped
volumes:
- phpipam-logo:/phpipam/css/images/logo
depends_on:
- phpipam-mariadb
phpipam-cron:
privileged: true
image: phpipam/phpipam-cron:latest
environment:
- TZ=Asia/Shanghai
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_PASS=123456
- SCAN_INTERVAL=1h
restart: unless-stopped
depends_on:
- phpipam-mariadb
phpipam-mariadb:
privileged: true
image: mariadb:10.3.37
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
restart: unless-stopped
command:
- mysqld
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- phpipam-db-data:/var/lib/mysql
volumes:
phpipam-db-data:
phpipam-logo:
1.2 创建并启动
ubuntu安装docker-compose命令:sudo apt install docker-compose
sudo docker-compose -p phpipam up -d
1.3 第一次访问配置
1.3.1 选择 New phpipam installation
三个选项新的 phpipam 安装、迁移 phpipam 安装和工作安装,新的 phpIPAM 安装时,选择 New phpipam installation
1.3.2数据库安装
分为自动数据库安装、MySQL 导入说明、手动数据库安装,选择自动数据库安装选项
1.3.3数据库用户以及密码配置
输入数据库用户名、密码、主机、数据库名称 选择 Install phpipam database 选项
docker-compose 设置的用户名\:root 密码123456,根据你的配置文件来填写
1.3.4提示数据库安装成功,选择 Continue 继续安装
1.3.5设置 Web 界面的管理员用户
设置 Web 界面的管理员用户、密码、phpIPAM 界面顶部的标题以及 phpIPAM 安装的 URL,选择Save settings 选项\ 用户名默认是admin,密码设置为1qaz\@WSX\
1.3.6选择 Proceed to login 跳转到 phpIPAM 登录界面
1.3.7输入admin 用户密码登录(输入你刚刚设置的admin 和密码)
1.3.8设置账户中文显示,选择Administrator--Users
1.3.9选择Admin 用户,点击编辑按钮
1.3.10注销当前登录会话重新登录,界面中文显示
镜像压缩包存储位置以及使用
将镜像导出的tar包,保存在基础镜像:centos:7.9.2009下的/root
保存地址:docker仓库地址
# 阿里云
registry.cn-beijing.aliyuncs.com/app_demo/app:centos7.9.2009-ipam1.5.3
# 华为云
swr.cn-north-4.myhuaweicloud.com/app_demo/centos7.9.2009/ipam:centos7.9.2009-ipam1.5.3
# 腾讯云
ccr.ccs.tencentyun.com/app_demo/app:centos7.9.2009-ipam1.5.3
\:::warning\
使用将tar包复制到宿主机的docker环境中
使用sava保存的,使用load导入才行
当初:docker save -o ipam.tar phpipam/phpipam-cron\:latest phpipam/phpipam-www\:latest mariadb:10.3.37
导入:docker load -i ipam.tar
将docker-compose.yml的内容复制进去
启动:docker-compose -p ipam up -d
\:::
机柜中文乱码问题
解决:上传中文字体到服务器对应php字体目录并修改php代码
由于是docker部署,所以进容器中上传并修改,进入的是phpipam/phpipam-www\:latest容器
docker exec -it phpipam_phpipam-web_1 sh
搜索字体
找到“MesloLGS-Regular.ttf”字体位置就能知道php字体路径了
find / -name MesloLGS-Regular.ttf
/phpipam/css/fonts/MesloLGS-Regular.ttf
# 将对应的字体上传到/phpipam/css/fonts,并删除原来的名字,将新字体重新命名为原来的名字,就可以了
# 无需重启
怎么把文件传到Docker里
方法一:使用docker cp
命令
docker cp
命令可以将本地主机上的文件或目录复制到正在运行的Docker容器中。它的语法如下:
docker cp [OPTIONS] SOURCE_PATH CONTAINER:DEST_PATH
其中,SOURCE_PATH
为本地主机上的文件或目录路径,CONTAINER
为Docker容器的名称或ID,DEST_PATH
为目标路径。以下是使用docker cp
命令将文件传输到Docker容器的示例:
# 将本地文件复制到Docker容器中
docker cp /path/to/local/file.txt container_name:/path/to/dest/file.txt
# 将本地目录复制到Docker容器中
docker cp /path/to/local/directory container_name:/path/to/dest/directory
通过这种方式,可以将文件或目录从本地主机复制到正在运行的Docker容器中。