Docker 从0安装 nacos集群

前提条件

Docker支持一下的CentOs版本

  • Centos7(64-bit),系统内核版本为 3.10 以上
  • Centos6.5(64-bit) 或者更高版本,系统内核版本为 2.6.32-431 或者更高版本

安装步骤

使用 yum 安装(CentOS 7下)

  • 通过 uname -r 命令查看你当前的内核版本
    [root@05aisjbZ ~]# uname -r 
    3.10.0-1127.19.1.el7.x86_64
    
  • 安装命令
    [root@05aisjbZ ~]# yum -y install docker
    
  • 启动 Docker 后台服务
    [root@05aisjbZ ~]# service docker start
    

安装MySQL

  • 查看docker中已有mysql的镜像

    [root@ds ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    docker.io/nginx     latest              605c77e624dd        2 years ago         141 MB
    docker.io/mysql     8.0.27              3218b38490ce        2 years ago         516 MB
    
  • 查看docker中正在运行mysql的容器

    [root@ds ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
    45b6227e0cb5        mysql:8.0.27        "docker-entrypoint..."   6 days ago          Up 6 minutes        33060/tcp, 0.0.0.0:2333->3306/tcp   mysql
    
  • 停止已有Mysql容器

    [root@ds ~]# docker stop 45b6227e0cb5
    45b6227e0cb5
    
  • 删除已有Mysql容器

    [root@ds ~]# docker rm -f 45b6227e0cb5
    45b6227e0cb5
    
  • 删除镜像

    [root@ds ~]# docker rmi -f 3218b38490ce
    Untagged: docker.io/mysql:8.0.27
    Untagged: docker.io/mysql@sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
    Deleted: sha256:3218b38490cec8d31976a40b92e09d61377359eab878db49f025e5d464367f3b
    Deleted: sha256:aa81ca46575069829fe1b3c654d9e8feb43b4373932159fe2cad1ac13524a2f5
    Deleted: sha256:0558823b9fbe967ea6d7174999be3cc9250b3423036370dc1a6888168cbd224d
    Deleted: sha256:a46013db1d31231a0e1bac7eeda5ad4786dea0b1773927b45f92ea352a6d7ff9
    Deleted: sha256:af161a47bb22852e9e3caf39f1dcd590b64bb8fae54315f9c2e7dc35b025e4e3
    Deleted: sha256:feff1495e6982a7e91edc59b96ea74fd80e03674d92c7ec8a502b417268822ff
    Deleted: sha256:8805862fcb6ef9deb32d4218e9e6377f35fb351a8be7abafdf1da358b2b287ba
    Deleted: sha256:872d2f24c4c64a6795e86958fde075a273c35c82815f0a5025cce41edfef50c7
    Deleted: sha256:6fdb3143b79e1be7181d32748dd9d4a845056dfe16ee4c827410e0edef5ad3da
    Deleted: sha256:b0527c827c82a8f8f37f706fcb86c420819bb7d707a8de7b664b9ca491c96838
    Deleted: sha256:75147f61f29796d6528486d8b1f9fb5d122709ea35620f8ffcea0e0ad2ab0cd0
    Deleted: sha256:2938c71ddf01643685879bf182b626f0a53b1356138ef73c40496182e84548aa
    Deleted: sha256:ad6b69b549193f81b039a1d478bc896f6e460c77c1849a4374ab95f9a3d2cea2
    
  • 拉取mysql镜像

    docker pull mysql:8.0.27
    

    安装mysql时,由于网络原因出现Get https://registry-1.docker.io/v2/错误,使用阿里云的镜像

    vim /etc/docker/daemon.json
    # 内容如下
    {
        "registry-mirrors": ["https://6kx4zyno.mirror.aliyuncs.com"] #修改镜像
    }	
    

    重启docker

    systemctl restart docker
    
  • 定义挂载目录
    在/home/mysql目录下新建两个文件夹,一个叫data另一个叫conf
    命令形式

    mkdir -p /home/mysql/{data,conf}
    
  • 配置my.cnf(my.ini)

    [mysqld]
    #Mysql服务的唯一编号 每个mysql服务Id需唯一
    server-id=1
    #服务端口号 默认3306
    port=3306
    #mysql安装根目录(default /usr)
    #basedir=/usr/local/mysql
    #mysql数据文件所在位置
    datadir=/var/lib/mysql
    #pid
    pid-file=/var/run/mysqld/mysqld.pid
    #设置socke文件所在目录
    socket=/var/lib/mysql/mysql.sock
    #设置临时目录
    #tmpdir=/tmp
    # 用户
    user=mysql
    # 允许访问的IP网段
    bind-address=0.0.0.0
    # 跳过密码登录
    #skip-grant-tables
    #主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容
    #skip-external-locking
    #只能用IP地址检查客户端的登录,不用主机名
    #skip_name_resolve=1
    #事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
    #transaction_isolation=READ-COMMITTED
    #数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
    character-set-server=utf8mb4
    #数据库字符集对应一些排序等规则,注意要和character-set-server对应
    collation-server=utf8mb4_general_ci
    #设置client连接mysql时的字符集,防止乱码
    init_connect=‘SET NAMES utf8mb4’
    #是否对sql语句大小写敏感,1表示不敏感
    lower_case_table_names=1
    #最大连接数
    max_connections=400
    #最大错误连接数
    max_connect_errors=1000
    #TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
    explicit_defaults_for_timestamp=true
    #SQL数据包发送的大小,如果有BLOB对象建议修改成1G
    max_allowed_packet=128M
    #MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
    #MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效
    interactive_timeout=1800
    wait_timeout=1800
    #内部内存临时表的最大值 ,设置成128M。
    #比如大数据量的group by ,order by时可能用到临时表,
    #超过了这个值将写入磁盘,系统IO压力增大
    tmp_table_size=134217728
    max_heap_table_size=134217728
    #禁用mysql的缓存查询结果集功能
    #后期根据业务情况测试决定是否开启
    #大部分情况下关闭下面两项
    #query_cache_size = 0
    #query_cache_type = 0
    #数据库错误日志文件
    #log-error=/var/log/mysqld.log
    #慢查询sql日志设置
    #slow_query_log=1
    #slow_query_log_file=/var/log/mysqld_slow.log
    #检查未使用到索引的sql
    log_queries_not_using_indexes=1
    #针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数
    log_throttle_queries_not_using_indexes=5
    #作为从库时生效,从库复制中如何有慢sql也将被记录
    log_slow_slave_statements=1
    #慢查询执行的秒数,必须达到此值可被记录
    long_query_time=8
    #检索的行数必须达到此值才可被记为慢查询
    min_examined_row_limit=100
    #mysql binlog日志文件保存的过期时间,过期后自动删除
    #expire_logs_days=5
    binlog_expire_logs_seconds=604800

    • 开启mysql容器

    docker run -itd -p 2333:3306
    –name mysql
    -v /home/mysql/conf/my.cnf:/etc/my.cnf
    -v /home/mysql/data:/var/lib/mysql
    –privileged=true
    –restart=always
    -e MYSQL_ROOT_PASSWORD=root
    -d docker.io/mysql:8.0.27 #这个的要是REPOSITORY:TAG

    • 语法说明

    -d:后台启动
    -p:映射端口
    -name:应用名称
    -e MYSQL_ROOT_PASSWORD:配置默认密码
    -privileged=true: 使用该参数,container内的root拥有真正的root权限,否则,container的root只是外部的一个普通用户权限
    -resatart=always, 容器启动参数,其值可以位no、no-failure、always。no:默认值,容器退出后,docker不在自动重启容器,on-failure:容器的推出状态非0,则docker自动重启容器,还可以指定启动次数,若超过次数未能启动,则放弃;always:只要容器退出,则docker将自动重启

  • 启动MYSQL

    [root@ds ~]# docker ps -a
    CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                               NAMES
    5568a7264dfe        docker.io/mysql:8.0.27   "docker-entrypoint..."   2 minutes ago       Up 2 minutes        33060/tcp, 0.0.0.0:2333->3306/tcp   mysql
    [oot@ds ~]# docker start 5568a7264dfe
    5568a7264dfe
    
    • 常见错误:

    1,链接报错信息:Public Key Retrieval is not allowed
    在这里插入图片描述

    解决方案:默认的​​allowPublicKeyRetrieval​​​为​​false​​​,抢其修改为​​true​​就可以。

Docker Compose

Docker Compose 是一个在 Docker 上运行使用 Compose 文件格式定义的多容器应用程序的工具

docker-compose安装
  • 在github上下载符合自己的版本的包
  • 存放到docker-compose目录下的plugins下(安装目录没有硬性要求)
  • 将下载的docker-compose文件最好重命名
  • 将下载的docker-compose文件 赋权

    sudo chmod +x /usr/local/bin/docker-compose

  • 添加软路由,方便调用

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

  • 检验安装是否正确

    docker-compose version

nacos集群安装

使用docker-compose安装集群,方便快捷。

nacos数据库配置,创建一个nacos数据库,运行一下语句

具体在nacos的conf中存放,或者网上找一份。

	/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info   */
/******************************************/
CREATE DATABASE nacos_config;
USE nacos_config;

CREATE TABLE `config_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) DEFAULT NULL,
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  `app_name` varchar(128) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `c_desc` varchar(256) DEFAULT NULL,
  `c_use` varchar(64) DEFAULT NULL,
  `effect` varchar(64) DEFAULT NULL,
  `type` varchar(64) DEFAULT NULL,
  `c_schema` text,
  `encrypted_data_key` text NOT NULL COMMENT '秘钥',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_aggr   */
/******************************************/
CREATE TABLE `config_info_aggr` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) NOT NULL COMMENT 'group_id',
  `datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
  `content` longtext NOT NULL COMMENT '内容',
  `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  `app_name` varchar(128) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';


/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_beta   */
/******************************************/
CREATE TABLE `config_info_beta` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `encrypted_data_key` text NOT NULL COMMENT '秘钥',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_tag   */
/******************************************/
CREATE TABLE `config_info_tag` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_tags_relation   */
/******************************************/
CREATE TABLE `config_tags_relation` (
  `id` bigint(20) NOT NULL COMMENT 'id',
  `tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
  `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`nid`),
  UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = group_capacity   */
/******************************************/
CREATE TABLE `group_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = his_config_info   */
/******************************************/
CREATE TABLE `his_config_info` (
  `id` bigint(64) unsigned NOT NULL,
  `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `data_id` varchar(255) NOT NULL,
  `group_id` varchar(128) NOT NULL,
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL,
  `md5` varchar(32) DEFAULT NULL,
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  `src_user` text,
  `src_ip` varchar(20) DEFAULT NULL,
  `op_type` char(10) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `encrypted_data_key` text NOT NULL COMMENT '秘钥',
  PRIMARY KEY (`nid`),
  KEY `idx_gmt_create` (`gmt_create`),
  KEY `idx_gmt_modified` (`gmt_modified`),
  KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';


/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = tenant_capacity   */
/******************************************/
CREATE TABLE `tenant_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';


CREATE TABLE `tenant_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `kp` varchar(128) NOT NULL COMMENT 'kp',
  `tenant_id` varchar(128) default '' COMMENT 'tenant_id',
  `tenant_name` varchar(128) default '' COMMENT 'tenant_name',
  `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
  `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
  `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';

CREATE TABLE users (
	username varchar(50) NOT NULL PRIMARY KEY,
	password varchar(500) NOT NULL,
	enabled boolean NOT NULL
);

CREATE TABLE roles (
	username varchar(50) NOT NULL,
	role varchar(50) NOT NULL,
	constraint uk_username_role UNIQUE (username,role)
);

CREATE TABLE permissions (
    role varchar(50) NOT NULL,
    resource varchar(512) NOT NULL,
    action varchar(8) NOT NULL,
    constraint uk_role_permission UNIQUE (role,resource,action)
);

INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);

INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
创建nacos目录
mkdir -p /apps/nacos		
切换到nacos目录
cd /apps/nacos
配置nginx
  • 创建nginx配置文件
touch nginx.conf
  • 写nginx.conf文件信息
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  4096;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  65;

    # include /etc/nginx/conf.d/*.conf;
    # 添加负载均衡配置
    upstream nacos {
        server 192.168.50.21:8846 weight=1 max_fails=2 fail_timeout=10s;# 192.168.50.21是宿主机的ip,因为nacos容器安装好后就是通过宿主机ip:端口访问的
        server 192.168.50.21:8847 weight=1 max_fails=2 fail_timeout=10s;
        server 192.168.50.21:8849 weight=1 max_fails=2 fail_timeout=10s;
    }

    server {
        listen       80;
        listen  [::]:80;
        # 修改为宿主机的 IP地址
        server_name 192.168.50.21;


        # To allow special characters in headers
        ignore_invalid_headers off;
        # Allow any size file to be uploaded.
        # Set to a value such as 1000m; to restrict file size to a specific value
        client_max_body_size 0;
        # To disable buffering
        proxy_buffering off;
        proxy_request_buffering off;

        location /nacos {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            proxy_connect_timeout 300;
            # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            chunked_transfer_encoding off;
            # 添加代理配置

            proxy_pass http://nacos;
        }
    }
}
创建并写docker-compose.yaml配置文件
  • 安装命令以及文件
cd /apps/nacos
touch docker-compose.yaml
vim docker-compose.yaml

docker-compose.yaml内容

version: "3"
services: 
    nacos-nginx: 
        container_name: nacos-nginx
        image: nginx
        links:
         - nacos1
         - nacos2
         - nacos3
        volumes: 
            - ./nginx.conf:/etc/nginx/nginx.conf:ro
        ports: 
            - 8845:80
        restart: on-failure 
    nacos1:
        container_name: nacos-server01
        hostname: nacos-server01
        image: nacos/nacos-server
        environment: 
            - MODE=cluster
            - PREFER_HOST_MODE=hostname
            - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
            - SPRING_DATASOURCE_PLATFORM=mysql
            - MYSQL_SERVICE_HOST=192.168.50.21 #数据库ip
            - MYSQL_SERVICE_PORT=2223
            - MYSQL_SERVICE_USER=root
            - MYSQL_SERVICE_PASSWORD=root #密码
            - MYSQL_SERVICE_DB_NAME=nacos #nacos数据库名称
            - JVM_XMS=128m
            - JVM_XMX=128m
            - JVM_XMN=128m
        volumes: 
            - ./cluster-logs/nacos1:/home/nacos/logs
            - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports: 
            - 8846:8848
            - 9848:9848
            - 9555:9555
        restart: on-failure
    nacos2:
        container_name: nacos-server02
        hostname: nacos-server02
        image: nacos/nacos-server
        environment: 
            - MODE=cluster
            - PREFER_HOST_MODE=hostname
            - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
            - SPRING_DATASOURCE_PLATFORM=mysql
            - MYSQL_SERVICE_HOST=192.168.50.21
            - MYSQL_SERVICE_PORT=2223
            - MYSQL_SERVICE_USER=root
            - MYSQL_SERVICE_PASSWORD=root
            - MYSQL_SERVICE_DB_NAME=nacos
            - JVM_XMS=128m
            - JVM_XMX=128m
            - JVM_XMN=128m
        volumes: 
            - ./cluster-logs/nacos1:/home/nacos/logs
            - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports: 
            - 8847:8848
            - 9849:9848
        restart: on-failure
    nacos3:
        container_name: nacos-server03
        hostname: nacos-server03
        image: nacos/nacos-server
        environment: 
            - MODE=cluster
            - PREFER_HOST_MODE=hostname
            - NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
            - SPRING_DATASOURCE_PLATFORM=mysql
            - MYSQL_SERVICE_HOST=192.168.50.21
            - MYSQL_SERVICE_PORT=2223
            - MYSQL_SERVICE_USER=root
            - MYSQL_SERVICE_PASSWORD=root
            - MYSQL_SERVICE_DB_NAME=nacos
            - JVM_XMS=128m
            - JVM_XMX=128m
            - JVM_XMN=128m
        volumes: 
            - ./cluster-logs/nacos1:/home/nacos/logs
            - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
        ports: 
            - 8849:8848
            - 9850:9848
        restart: on-failure
编排docker-compose.yaml
  • 修改数据
#语法 docker-compose -f <编排文件路径> up -d
docker-compose -f docker-compose.yaml up -d

查看运行情况

docker ps -n 5

查看容器日志

docker logs nacos-nginx
地址:http:{ip}:8845/nacos 账号密码都为nacos

在这里插入图片描述

安装遇到问题

  • docker - failed to register layer: Error processing tar file(exit status 1) no space left on device
    如果时磁盘不够,需要扩容磁盘,磁盘扩容攻略 ,吐槽一下:不清楚运维同学是不是偶尔也会写服务端代码!!!

  • nacos启动失败,Nacos Server did not start because dumpservice bean construction failure : No DataSource s
    nacos配置的数据库存在问题。

  • 如果嫌看日志麻烦,可以映射日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/274835.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux文件 profile、bashrc、bash_profile区别

Linux系统中&#xff0c;有三种文件 出现的非常频繁&#xff0c;那就是 profile、bash_profile、bashrc 文件。 1、profile 作用 profile&#xff0c;路径&#xff1a;/etc/profile&#xff0c;用于设置系统级的环境变量和启动程序&#xff0c;在这个文件下配置会对所有用户…

vivado 物理优化约束、交互式物理优化

物理优化约束 Vivado Design Suite在物理优化过程中尊重DONT_TOUCH特性。它不在具有这些属性的网络或小区上执行物理优化。要加快网络选择过程中&#xff0c;具有DONT_TOUCH属性的网络经过预过滤&#xff0c;不被考虑用于物理优化。此外&#xff0c;还遵守Pblock分配&#xff…

嵌入式学习41-数据结构2

今天学习了链表的增删改查 &#xff08;暂定&#xff01;&#xff01;后续再补内容&#xff09; 高内聚 &#xff1a;一个函数只实现一个功能 …

Java学习笔记:异常处理

Java学习笔记&#xff1a;异常处理 什么是异常异常体系结构&#xff1a;Error、Exception自定义异常 ​ **2024/3/19** 什么是异常 异常体系结构&#xff1a;Error、Exception 自定义异常

UE5 GAS开发p30 创建UI HUD 血条

新建AuraUserWidget,AuraWidgetController,AuraHUD 首先设置AuraWidgetController.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "AbilitySystemComponent.h" #in…

风丘电动汽车高压测试方案 助您高效应对车辆试验难题

针对电动汽车道路试验的要求&#xff0c;风丘科技携手德国IPETRONIK共同推出了电动汽车高压测试方案。电动汽车测试通常有两种测量手段&#xff1a;第一种是测量模拟量信号&#xff0c;包括电压、电流、温度和高压&#xff1b;第二种是使用数据记录仪或CAN卡从车辆总线读取数据…

JS+CSS3点击粒子烟花动画js特效

JSCSS3点击粒子烟花动画js特效 JSCSS3点击粒子烟花动画js特效

C++:类和对象(上篇)

目录&#xff1a; 一&#xff1a;面向对象和过程的介绍 二&#xff1a;类的引入 三&#xff1a;类的定义 四&#xff1a;类的访问限定符以及封装 五&#xff1a;类的作用域 六&#xff1a;类的实例化 七&#xff1a;类对象大小的计算 八&#xff1a;类成员函数的this指…

一次完整的 HTTP 请求所经历的步骤

1&#xff1a; DNS 解析(通过访问的域名找出其 IP 地址&#xff0c;递归搜索)。 2&#xff1a; HTTP 请求&#xff0c;当输入一个请求时&#xff0c;建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求&#xff0c;会略微有不同。 3&#xff1a; 客户端向服务器发…

智慧城市的发展趋势与挑战:未来展望

随着信息技术的飞速发展&#xff0c;智慧城市已成为现代城市发展的重要方向。智慧城市通过集成应用先进的信息通信技术&#xff0c;实现城市管理、服务、运行的智能化&#xff0c;为城市的可持续发展注入了新的活力。然而&#xff0c;在智慧城市的发展过程中&#xff0c;也面临…

Android Studio实现内容丰富的安卓外卖平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号122 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查看外卖分类 4.购物车&#xff0c; 5.个人中…

当人工智能遇上“理解偏差”:一场关于天气的宇宙之旅

在这个由数据和算法驱动的时代&#xff0c;人工智能(AI)无疑成为了我们日常生活中的重要组成部分。从智能助手到个性化推荐系统&#xff0c;AI的应用范围正在不断扩大&#xff0c;旨在为我们提供更加便捷、高效的服务。然而&#xff0c;尽管AI技术取得了显著进展&#xff0c;仍…

docker入门(五)—— 小练习,docker安装nginx、elasticsearch

练习 docker 安装 nginx # 搜素镜像 [rootiZbp15293q8kgzhur7n6kvZ home]# docker search nginx NAME DESCRIPTION STARS OFFICIAL nginx …

python大学生健身爱好者交流网站flask-django-nodejs-php

任何系统都要遵循系统设计的基本流程&#xff0c;本系统也不例外&#xff0c;同样需要经过市场调研&#xff0c;需求分析&#xff0c;概要设计&#xff0c;详细设计&#xff0c;编码&#xff0c;测试这些步骤&#xff0c;基于python技术、django/flask框架、B/S机构、Mysql数据…

windows 多网卡情况dns解析超时问题的排查

最近遇到一个问题 多网卡&#xff0c;多网络环境下&#xff0c;dns解析总是超时。 排查之后发现是dns配置的问题&#xff0c;一个有线网络配置的内网dns&#xff0c;一个无线网络配置的公网dns 访问公网时莫名的时不时出现超时现象 初步排查是dns解析的耗时太长&#xff0c;…

2024.3.9|第十五届蓝桥杯模拟赛(第三期)

2024.3.9|十五届蓝桥杯模拟赛&#xff08;第三期&#xff09; 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&…

mysql之基本概念与安装

一 数据库的基本概念 1.1 数据 记录个体的信息 1.2 表 存放信息的集合&#xff0c;行于与列 1.3 数据库 数据库就是表的集合。它是以一定的组织方式存储的相互有关的数据集合 1.4 数据库管理系统 数据库管理系统&#xff08;DatabaseManagementSystem&#xff0c;DBMS&…

Springboot+vue的仓库管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的仓库管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

用C语言打造自己的Unix风格ls命令

在Unix或类Unix操作系统中&#xff0c;ls是一个非常基础且实用的命令&#xff0c;它用于列出当前目录或指定目录下的文件和子目录。下面&#xff0c;我们将通过C语言编写一个简化的ls命令&#xff0c;展示如何利用dirent.h头文件提供的函数接口实现这一功能。 #include "…

五、C#归并排序算法

简介 归并排序是一种常见的排序算法&#xff0c;它采用分治法的思想&#xff0c;在排序过程中不断将待排序序列分割成更小的子序列&#xff0c;直到每个子序列中只剩下一个元素&#xff0c;然后将这些子序列两两合并排序&#xff0c;最终得到一个有序的序列。 归并排序实现原…
最新文章