1. 概述编辑
容器化部署后,用户需要掌握一些基础的docker运维知识。
2. 查找容器ID/容器名/容器状态编辑
注:推荐优先使用FineOps「运维组件」和「组件管理」功能查看容器信息。
命令语句:docker ps -a
返回值说明:可以查看所有容器的状态、端口映射以及其他重要信息,从而更好地管理和调试容器化应用程序。
| 返回值 | 说明 |
|---|---|
CONTAINER ID | 容器的唯一标识符 通常以大写字母和数字的组合形式表示 |
| IMAGE | 容器使用的镜像名称 |
| COMMAND | 用于启动容器的命令 |
| CREATED | 容器创建的时间戳 |
| STATUS | 容器的运行状态和健康状况 如正在运行(Up)、已停止(Exited)、正在重启等 |
| PORTS | 容器所暴露的端口和绑定到主机的端口 |
| NAMES | 指定的容器名称或自动生成的容器名称 |
示例:
在示例服务器中,存在一个ops容器,容器ID为「f1ac156d4db9」,使用了「ops:v1.6.0」镜像,并以「fanruan230718121827_ops」为容器名称正在运行。
容器于「6天前」创建,从创建至今已运行了 6 天,容器被标记为「healthy」,表示容器内部的应用程序正常运行并且健康。
它将主机「192.168.101.58」的「8081」端口映射到容器的「8080」端口,也就是用户可以通过访问主机的「192.168.101.58:8081」地址来与OPS通信。

3. 重启/关闭/启动容器编辑
命令语句:容器ID/容器名称请根据第二章方法查找。
| 场景 | 语句 |
|---|---|
| 重启容器 | docker restart 容器ID/容器名 |
| 关闭容器 | docker stop 容器ID/容器名 |
| 启动容器 | docker start 容器ID/容器名 |
示例:本节示例如何关闭和启动ops容器。
3.1 关闭ops容器
1)查找名称中包含ops的容器:docker ps -a | grep ops
根据返回值确定容器ID为:f1ac156d4db9
2)关闭该容器:docker stop f1ac156d4db9
3)再次查找名称中包含ops的容器:docker ps -a | grep ops
确认容器状态为 Exited ,代表容器成功关闭

3.2 启动ops容器
1)查找名称中包含ops的容器:docker ps -a | grep ops
此时容器状态为 Exited ,代表容器未启动。根据返回值确定容器ID为:f1ac156d4db9
2)启动该容器:docker start f1ac156d4db9
3)查看全部容器状态:docker ps -a
确保ops容器及其关联组件等(例如ops_agent)均启动

4. 查看容器配置项编辑
操作步骤:
1)参考第一章查找容器ID:docker ps -a
2)查看容器配置项:docker inspect 容器ID/容器名
4.1 查看fr容器配置
1)查找名称中包含fr的容器:docker ps -a | grep fr
根据返回值确定容器ID为:0b69cd526d44
2)查看该容器配置项:docker inspect 0b69cd526d44

3)此处摘选部分常用配置项,帮助用户查看。
Binds中,为工程外挂目录。
冒号前面为宿主机(容器所在机器)上目录,冒号后面为容器内部文件目录
例如如需上传FineReport模板到该工程中,应当上传到/home/fr/fanruan230724160433/fr/reportlets路径下

在Env中,可以查看到容器内目录、内存、端口、工程名、JVM参数等信息

4.2 查看Redis容器配置
1)查找名称中包含redis的容器:docker ps -a | grep redis
根据返回值确定容器ID为:47dadb9d756f
2)查看该容器配置项:docker inspect 47dadb9d756f

3)此处摘选部分常用配置项,帮助用户查看。

5. 执行组件命令编辑
操作步骤:
1)参考第一章查找容器ID:docker ps -a
2)进入容器:docker exec -it 容器ID/容器名 bash
3)进入之后,所有指令和常规Linux终端指令无异
5.1 查看MySQL信息
1)查找名称中包含mysql的容器:docker ps -a | grep mysql
根据返回值确定容器ID为:aa4cc27d65dd
2)进入mysql容器:docker exec -it aa4cc27d65dd bash
3)输入:env
即可返回mysql相关信息,例如下图mysql中root用户的密码为12345678QWE

5.2 查看Minio信息
1)查找名称中包含minio的容器:docker ps -a | grep minio
根据返回值确定容器ID为:d047bb256244
2)进入minio容器:docker exec -it d047bb256244 bash
3)输入:env
即可返回minio相关信息,如minio的用户名、密码等。
Minio访问地址:http://ip:port/minio/login

6. 查看容器日志编辑
当FineOps出现故障时,无法从前端查看各个应用和组件的日志。
本节介绍两种查看容器日志的方法。
6.1 在线实时查看OPS日志
1)查找名称中包含ops的容器:docker ps -a | grep ops
根据返回值确定ops容器ID为:7b396943b0da
2)实时监视容器的日志:docker logs -f 7b396943b0da

6.2 下载OPS日志
1)查找名称中包含ops的容器:docker ps -a | grep ops
根据返回值确定ops容器ID为:7b396943b0da
2)查看ops容器的配置:docker inspect 7b396943b0da

3)在返回值中,即可在Binds中查看到logs日志的存储位置,自行下载查看即可。

7. 其他编辑
7.1 查看Redis密码
1)查找名称中包含redis的容器:docker ps -a | grep redis
根据返回值确定容器ID为:47dadb9d756f
2)查看该容器配置项:docker inspect 47dadb9d756f
即可确定Redis的外挂目录为:/data/bi6/fanruan230719153907/redis/data

3)进入/data/bi6/fanruan230719153907/redis/data,打开该目录下的redis.conf文件
即可查看Redis的用户密码为admin123

7.2 迁移拷贝文件
迁移工程时,经常需要拷贝文件夹。直接复制粘贴非常耗费时间,建议通过cp语句进行拷贝。
语句:
拷贝文件:scp /本地文件夹路径/文件名.后缀 远程user@host:/远程目标路径
拷贝文件夹:scp -r /本地文件夹路径 远程user@host:/远程目标路径
示例:
将「192.168.101.58服务器/usr/local/tomcat/webapps/webroot/WEB-INF/lib文件夹」,拷贝到「192.168.101.108服务器/data文件夹」下
请提前获取192.168.101.108服务器中,有增删目录文件的用户名和密码,此示例假定用户为user
1)打开终端,使用有拷贝文件权限的用户,访问192.168.101.58服务器(源服务器)
2)执行命令:scp -r /usr/local/tomcat/webapps/webroot/WEB-INF/lib user@192.168.101.108:/data/
3)执行命令后,可能会提示您输入目标服务器的用户密码。输入密码后,复制过程将开始。
4)等待复制完成。复制的时间取决于文件夹的大小和网络传输速度。
7.3 拷贝文件到容器内
配置工程ssl时,往往需要将证书文件上传到nginx中,建议通过docker cp语句进行拷贝。
容器ID/容器名称请根据第二章方法查找。
语句:
docker cp 源文件路径 容器名:目标路径
示例:
将当前机器上/data目录下的a.txt拷贝到容器内的/usr/local/tomcat/webapps/webroot/WEB-INF/lib下
docker cp /data/a.txt 容器名:/usr/local/tomcat/webapps/webroot/WEB-INF/lib

