努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • Docker

    • Docker安装与基础操作
    • Docker知识点
    • Dockerfile
    • docker-compose使用
    • 麒麟系统适配环境准备(x86_64运行arm容器)
    • docker单点启动nacos持久化密码
      • docker单点启动nacos持久化密码
        • 单机运行持久化密码
        • 使用docker-compose启动nacos
        • curl Post 创建配置
    • ctr和crictl命令
    • 二进制安装docker
    • ubuntu镜像时区问题
  • Kubernetes

  • Nexus

  • Rancher

  • Prometheus

  • ELK

  • 虚拟化

//
  • 云计算虚拟化
  • Docker
yangfk
2022-07-09

docker单点启动nacos持久化密码

//

# docker单点启动nacos持久化密码

nacos-docker启动文档 (opens new window)

nacos-dockerhub (opens new window)

  • 构建nacos-docker镜像

我这里有点小改动,里面有个sed,修改了启动脚本,官方的镜像会依赖mysql服务

vi Dcokerfile

FROM openjdk:8u252-jdk

MAINTAINER "yangfk"
LABEL version="jdk-8u252",nacos="2.0.2"
RUN test -d /home || mkdir /home

#docker镜像nacos/nacos-server:v2.1.0-slim 拷贝/home/nacos目录制作nacos.tar包
#ADD ./nacos-server-2.0.2.tar.gz /home/
ADD https://github.com/alibaba/nacos/releases/download/2.0.2/nacos-server-2.0.2.tar.gz /home

WORKDIR /home/nacos

#输出信息软链接
RUN mkdir logs && touch logs/start.out && ln -sf /dev/stdout logs/start.out && ln -sf /dev/stderr logs/start.out \ 
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/zonetime \
    && rm -rf /var/lib/apt/lists/* \
	&& sed  -i 's#\(nohup\)\(.*\)&#\2#g' /home/nacos/bin/startup.sh 

#nacos
ENV MODE=cluster PREFER_HOST_MODE=ip BASE_DIR=/home/nacos CLASSPATH=.:/home/nacos/conf: CLUSTER_CONF=/home/nacos/conf/cluster.conf FUNCTION_MODE=all NACOS_USER=nacos JAVA=/usr/local/openjdk-8/bin/java JVM_XMS=1g JVM_XMX=1g JVM_XMN=512m JVM_MS=128m JVM_MMS=320m NACOS_DEBUG=n TOMCAT_ACCESSLOG_ENABLED=false TZ=Asia/Shanghai  LANG=en_US.UTF-8
EXPOSE 8848
ENTRYPOINT  ["bash","bin/startup.sh","-m","standalone"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  • 构建镜像,启动
docker build . -t harbor.yfklife.cn/public/nacos:2.0.2
docker run -it --restart=always -p 8848:8848 --name nacos harbor.yfklife.cn/public/nacos:2.0.2
1
2

# 单机运行持久化密码

登录界面修改nacos密码,默认账号密码:nacos/nacos

test -d /data && cd /data || mkdir /data && cd /data
test -d /data/nacos-data || mkdir /data/nacos-data
docker stop nacos
docker cp nacos:/home/nacos/data/derby-data /data/nacos-data/derby-data
docker rm -f nacos
docker run -it --restart=always -p 8848:8848 --name nacos -v /data/nacos-data/derby-data:/home/nacos/data/derby-data harbor.yfklife.cn/public/nacos:2.0.2
1
2
3
4
5
6

# 使用docker-compose启动nacos

vi docker-compose-nacos.yml

version: '3'

#宿主机IP: 10.12.32.180
services:
  prod_nacos:
    restart: always
    container_name: prod_nacos
    image: harbor.yfklife.cn/public/nacos:2.0.2
    working_dir: /home/nacos
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
      #- ./nacos-data/derby-data:/home/nacos/data/derby-data   #密码存储文件,持久化密码需要拷贝,挂载出来
    ports:
      - "8848:8848"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://127.0.0.1:8848/nacos/index.html"]
      interval: 1m
      timeout: 5s
      retries: 3
    deploy:
      resources:
         limits:
            memory: 2G
         reservations:
            memory: 1G
    network_mode: bridge
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  • 宿主机service 配置nacos服务
cat >/etc/init.d/nacos<<'EOF'
#!/bin/bash

source /etc/profile #需要配置jdk 环境

start(){
    if ! $(ps -ef |grep nacos-server.jar >/dev/null );then
        /home/nacos/bin/startup.sh  -m standalone >/dev/null 2>&1 &
    fi
    sleep 3
    ps -ef |grep nacos-server.jar
}

stop() {
    bash /home/nacos/bin/shutdown.sh
}

restart() {
    bash /home/nacos/bin/shutdown.sh
    sleep 3
    /home/nacos/bin/startup.sh  -m standalone >/dev/null 2>&1 &
}

status() {
    ps -ef |grep nacos-server.jar
    curl -I 127.0.0.1:8848/nacos/index.html
}


case "$1" in
start)
  start
  ;;
status)
  status
  ;;
stop)
  stop
  ;;
restart)
  restart
  ;;
*)
  echo "Usage :$0 {start|stop|restart|status}"
  ;;
esac

EOF

chmod +x /etc/init.d/nacos
service nacos start
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

# curl Post 创建配置

有时候创建配置需要登录nacos平台去手动新建很麻烦,通过curl 命令导入,可以用于容器数据未做持久化,启动的时候创建配置

Data ID(文件名):common.yml 配置格式:yaml 配置内容:common.yml 内容 group: DEFAULT_GROUP nacos用户密码:nacos/nacosPass

  • init_nacos.sh
cat >init_nacos.sh<<'EOF'
#!/bin/bash
export MODE=standalone


Path=$(cd $(dirname $0); pwd)
cd $Path

#cd /home/nacos/data/app-service-config
#bash bin/docker-startup.sh &

until curl -Is http://127.0.0.1:8848/nacos/index.html 2>&1;do
    echo 'nacos did not start ...'
    sleep 3
done


for file in `ls *.yml`;
do
curl -d "dataId=$file" -d 'username=nacos&password=nacosPass'  \
 -d 'group=DEFAULT_GROUP'   -d 'namespaceId=public'   -d "content=$(cat $file)"  -d "type=yaml" \
 -X POST 'http://127.0.0.1:8848/nacos/v2/cs/config'

done
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  • common.yml
cat >common.yml<<'EOF'
dm:
  datasource:
    ip: 172.18.151.102
    port: 5432
    username: dimine
    password: NWnp4HAJMiuP
  redis:
    ip: 192.168.202.112
    port: 6379
    password: GhRJhuIHgjKEJCcar2er
EOF
1
2
3
4
5
6
7
8
9
10
11
12
//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2025/01/23, 10:34:52
麒麟系统适配环境准备(x86_64运行arm容器)
ctr和crictl命令

← 麒麟系统适配环境准备(x86_64运行arm容器) ctr和crictl命令→

最近更新
01
Linux Polkit 权限提升漏洞(CVE-2021-4034)
03-28
02
postgreSQL维护
03-17
03
trivy系统漏洞扫描
02-25
更多文章>
Theme by Vdoing | Copyright © 2019-2025 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//