验证备点 随笔(个人记录,无参考价值,慎点)

本文详细介绍了如何在物理机上管理Docker容器,包括查看和修改挂载路径,添加外挂配置文件,重启容器,修改启动脚本以加载外部配置,处理网络配置,以及监控和解决日志中的异常。同时,提到了配置文件的变更、日志查看、网络申请和Nginx的配置更新等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在物理机上,

一、查看容器中文件的挂载路径

 cd  /data/docker-compose/

能看到docker-compose.yml

(1)查看外挂信息

  op-points-manager-new_ip:
    image: harbor.xxx.xx/xxx/op-points-manager-new:v1.0
    container_name: op-points-manager-new_ip
    privileged: true
    restart: always
    cpus: '4'
    mem_limit: 4096M
    volumes:
      - /data/app/config/op-points-manager-new/logback.xml:/data/app/op-points-manager-new/logback.xml
      - /data/app/config/op-points-manager-new/startup.sh:/data/app/op-points-manager-new/startup.sh
      - /data/logs/op-points-manager-new/logs/:/data/app/op-points-manager-new/logs/

容器名:
container_name: op-points-manager-new_ip

可看到日志和配置文件已外挂,修改物理机上配置即可生效。
日志:
docker里的/data/app/op-points-manager-new/logs/路径,映射物理机/data/logs/op-points-manager-new/logs/

配置文件:
docker里的/data/app/op-points-manager-new/startup.sh映射物理机/data/app/config/op-points-manager-new/startup.sh

(2)追加外挂信息

可以看到外挂文件中,少外挂了application-pro.yaml这个配置文件,

a)在docker-compose.yml中添加外挂信息:
- /data/app/config/op-points-manager-new/application-pro.yaml:/data/app/op-points-manager-new/application-pro.yaml
b)在若依中添加外挂信息:

http://10.10.124.11:8098/index
在这里插入图片描述另,确认一下,是否需要外挂hosts文件。
如需可追加:

- /data/app/config/op-points-manager-new_ip/hosts:/etc/hosts

在这里插入图片描述
从阿波罗配置中心的op-points-manager-new项目中可以看到,鉴权地址是http://test.usersso.api.gitv.tv,docker容器 需要知道这个域名的映射ip,所以需从外挂配置中读取。
操作步骤:
(1)在添加外挂hosts前,启动docker容器,把容器中的原始hosts内容拷贝到物理机上,追加 自己的host。
(2)在docker-compose.yml中外挂hosts文件。
(3)重启容器。

# docker 容器中的hosts文件 原始信息“
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
10.58.140.30	6469bcec8369

# 追加:
10.58.138.100 test.usersso.api.gitv.tv
c)重建容器并启动:

通过提前编写好的yml 文件在当前宿主机上(重新)创建容器,除此之外,除非容器服务已经运行,否则启动所有链接服务。

docker-compose -f /data/docker-compose/docker-compose.yml up -d op-points-manager-new_ip

二、修改配置

(1)修改项目的启动脚本

修改为 读取外挂目录中的配置。

vim /data/app/config/op-points-manager-new/startup.sh

需要把这两个配置加载启动命令后面

--spring.config.location=$FILE_PATH/application-prod.yml 
--logging.config=$FILE_PATH/logback.xml"

如:

RUN_COMMAND="$JAVA_HOME8 $JAVA_OPTS -jar $FILE_PATH/*.jar  
--spring.config.location=$FILE_PATH/application-prod.yml 
--logging.config=$FILE_PATH/logback.xml"

--这种携参方式,配置参数需加在*.jar后面,否则参数无效,亲测如此。

a) java -jar参数携带方式
方式一

-DpropName=propValue的形式携带,要放在-jar参数前面,放在它后面好像取不到值。

java -DprocessType=1 -jar d.jar

System.getProperty(“propName”)用来取值。

方式二

参数直接跟在命令后面,多个参数之间用空格隔开

java -jar d.jar 2.txt processType=1

这种方式参数就是jar包里主启动类中main方法的args参数,按顺序来。

方式三

使用springboot的方式,–propName=propValue方式

java -jar d.jar --processType=2

可以使用spring的@value(“${propName}”)取值。

完整版startup.sh

#!/bin/bash

JAVA_HOME8=/usr/bin/java

JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xmn1024M -Xss256k \
-XX:+UseParallelGC -XX:ParallelGCThreads=16 -XX:+UseParallelOldGC \
-XX:MaxDirectMemorySize=1024m"

FILE_PATH="$(dirname $(readlink -f $0))"
LOG_PATH="/dev/null"

RUN_COMMAND="$JAVA_HOME8 $JAVA_OPTS -jar $FILE_PATH/*.jar 
--spring.config.location=$FILE_PATH/application-prod.yml 
--logging.config=$FILE_PATH/logback.xml"

PID_FILE="$FILE_PATH/logs/server.pid"
pid=''

cd $FILE_PATH
start(){
   $RUN_COMMAND
}

case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    *)
    printf 'Usage: {start|stop} to start or stop server! \n'
    exit 1
    ;;
esac
脚本说明:
dirname $0   获取当前脚本的相对路径。
readlink -f $0   找出符号链接所指向的位置,如果没有链接,就显示自己本身的绝对路径。
$(dirname $(readlink -f $0))   获取当前脚本的绝对路径。

(2)把各种配置改为连接备点信息

如 数据库、redis、ES等。
确保连接的是正确的阿波罗地址。

(3)注意事项

docker部署的项目,放jar包的文件夹名字,需一律小写,不允许有大写,docker不认。
/data/app/$NAME/*.jar $NAME需全部小写。
如有大写,需修改文件夹名、logback.xml 及 startup.sh。

三、重启 容器

/data/docker-compose/目录下,执行:

docker-compose restart  op-points-manager-new_10.58.185.58

会看到控制台打印出:
Restarting op-points-manager-new_10.58.185.58 … done
好!启动成功!

docker-compose restart  op-points-manager-new_10.58.187.11
docker restart op-points-manager-new_10.58.185.58

(1)docker容器 三种启动方式的区别

要使用docker-compose命令,需进入docker-compose.yaml所在路径下执行命令。

1)docker-compose up -d

若是使用:
docker-compose down ;
docker-compose up -d ;
会加载docker-compose相关文件新变动内容(如docker-compose.yml文件)

2)docker-compose restart

docker-compose restart不会加载docker-compose相关文件新变动内容(如docker-compose.yml文件)

如果只是改动代码和配置文件等,docker-compose restart是没有问题的。

docker-compose restart使用的是docker-compose.yml里定义的别名。

3)docker restart

不会加载docker-compose.yml新变动内容。
docker restart是使用的是容器全名。

四、看日志

tail -200f /data/logs/op-points-manager-new/logs/op-points-manager/sdt.2022-03-18.log

从日志中,能看到异常,有些是连不上的。

五、申请开通网络

https://openport.xxxx.xx/my_deploy_new
在这里插入图片描述
源ip:写容器ip。
目标ip:要访问的ip。
用途写清,以便审批。

源ip和目标ip,两者需同属内网或公网。
内网访问内网,公网访问公网。

1、若目标ip是内网,可直接提出申请。
2、若目标ip是公网,则需找运维开通源ip的NAT后,让其提供出口IP。

内网的计算机以NAT(Network Address Translator)(网络地址转换)协议,通过一个公共的网关访问Internet。

(1)如需访问公网数据库,则需拿着出口IP向运维申请开通阿里云白名单。
(2)向DBA申请数据库权限。

六、再次验证

启动日志正常。

hosts中指定备点的nginx的ip,访问页面:
在这里插入图片描述咦?!
在这里插入图片描述

七、nginx

docker ps | grep nginx

在这里插入图片描述可以看到nginx是Restarting状态。接着来查找nginx启动失败的原因。

docker logs nginx-epg_*

在这里插入图片描述从这里可以看到,配置中缺少东西。更新配置并重启。
在这里插入图片描述nginx启动成功!
可以看到 某菜单域名是points-manager.xxxx.xx
在这里插入图片描述找到docker nginx,外挂路径,修改配置:

cd /data/app/config/nginx-epg/conf/vhosts/

把 菜单域名指向容器ip:

upstream points-manager {
       server 10.xx.xxx.58:10011;
       server 10.xx.xxx.11:10011 backup;
}


server {
        listen                  80;
        server_name             points-manager.xxxx.xx;
        access_log              logs/points-manager.xxxx.xx.log xxxx;
        error_log               logs/points-manager.xxxx.xx.error.log error;
        add_header              Access-Control-Allow-Origin *;
        default_type            text/plain;

	location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-Ip $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_connect_timeout    800;
            proxy_read_timeout       800;
            proxy_send_timeout       800;
            proxy_pass   http://points-manager;
        }
}

再次访问:
在这里插入图片描述大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值