历史版本9 :docker常用操作 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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