#1.Shell脚本 key = value 获取value
# 查看xxx.ini文件内容
cat xxx.ini
# 显示/获取包含指定内容的那一行
| grep node_num
-------------------------
结果:node_num = 3
# awk -F (-F 指定分割符)
# 2使用=作为分割符,获取第二个值
# 2分割后结果 [node_num , 3] (注意node_num后面有个一个空格,3前面有一个空格)
| awk -F'=' '{print $2}'
-------------------------
结果: 3(前面有空格)
# 去除空格
| sed s/[[:space:]]//g
-------------------------
结果:3(前面无空格)
--------------------------------------------------------------------------
配置文件设置内容:
# 节点编号
node_num = 3
--------------------------------------------------------------------------
# 查找/获取 xxx.ini文件中yyy属性等号右边的值
cat xxx.ini | grep yyy | awk -F'=' '{print $2}' | sed s/[[:space:]]//g
cat sectag-node.ini | grep node_num | awk -F'=' '{print $2}' | sed s/[[:space:]]//g`
--------------------------------------------------------------------------
结果:3
#2.获取容器ID
docker ps -f name="${SERVICE_NAME}_${NUM}" -aq
-f :根据条件过滤显示的内容。 例如:-f name="sls-file-kit_3" 显示name=sls-file-kit_3的容器信息
-a :显示所有的容器,包括未运行的。
-q :静默模式,只显示容器编号。
[root@localhost sls-dbs-kit]# docker ps -f name="sls-file-kit_3"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0498d3c570bb sls-file-kit:2.0.0.1 "sh -c 'java -agentl…" 4 days ago Up 2 hours 0.0.0.0:9648->9648/tcp sls-file-kit_3
[root@localhost sls-dbs-kit]# docker ps -f name="sls-file-kit_3" -aq
0498d3c570bb
#3.Docker启动命令相关参数说明
命令:
docker run
#1.第一部分 基础命令
-d -p ${MOUNT_PORT}:${PORT} -v /etc/localtime:/etc/localtime:ro -v ${CURRENT_DIR}/../jar:/sls \
-v ${FILE_FOLDER_MAP}:${FILE_FOLDER_MAP} --name=${SERVICE_NAME}_${NUM} --network ${SLS_NETWORK} --network-alias ${SERVICE_NAME}_${NUM} --restart=always
#2.第二部分 容器参数传递
-e jar_name=""${SERVICE_NAME}"-"${VERSION}".jar" -e params="--kit.ip="${SERVICE_IP}" \
--server.port="${PORT}" --spring.rabbitmq.host="${RABBITMQ_IP}" --spring.rabbitmq.port="${RABBITMQ_PORT}" \
--spring.rabbitmq.username="${RABBITMQ_USERNAME}" --spring.rabbitmq.password="${RABBITMQ_PASSWORD}" \
--database.ip="${DATABASE_IP}" --database.port="${DATABASE_PORT}" --database.name="db_kit_0" \
--database.username="${DATABASE_USERNAME}" --database.password="${DATABASE_PASSWORD}" \
--verification.code="${VERIFY_CODE}" --supervise.isOpen="${SUPERVISE_OPEN}" \
--kit.username="${SUPERVISE_USERNAME}" --kit.password="${SUPERVISE_PASSWORD}" \
--document.preview.switch="${DOCUMENT_PREVIEW_SWITCH}" --document.openOffice.ip="${OPENOFFICE_IP}" --document.openOffice.port="${OPENOFFICE_PORT}" \
--kit.webtoken="${SUPERVISE_WEBTOKEN}" --office.tag.open="${OFFICE_TAG_SERVER_OPEN}" \
--office.tag.ip="${OFFICE_TAG_SERVER_IP}_${NUM}" --office.tag.port="${OFFICE_TAG_SERVER_PORT}" \
--file.scan.time="${FILE_SCAN_TIME}" --tongtech.exchange.copyFile.start="${TONGTECH_EXCHANGE_COPYFILE_START}" \
--tongtech.exchange.copyFile.time="${TONGTECH_EXCHANGE_COPYFELE_TIME}""
#3.第三部分 指定容器运行
${IMAGE_NAME}:${VERSION}(最后指定启动那个容器)
docker run
#1.-d 后台运行守护进程
#2.-p 端口映射 -p a_port:b_port a_port(容器对外映射的端口) b_port(容器内部的端口)
#3.-v xxx:yyy 将外部xxx未知,与docker容器内yyy挂载到一起
#4.--name=newNmae 为容器创建的别名
#5.--network
#6.--restart=always 当docker重启时,容器自动启动
#7.-e 传递环境变量,例:-e jar_name=""${SERVICE_NAME}"-"${VERSION}".jar"