Docker常用安装

Docker常用安装

一、Docker安装Nginx

1.1 下载镜像
docker pull nginx
1.2 运行并挂载文件
docker run -d -p 80:80 --name nginx01 -v nginx-config:/etc/nginx -v /data/:/data/ nginx

注意

-v 是将:后面的容器内的文件挂载到宿主机上,也就是说用宿主机的配置来代替容器内的配置,更改宿主机的配置相当于是改容器内的配置,这样的话加入容器被删除了,也不会丢失我们的配置文件,这里使用的是具名挂载,指定了挂载文件的名称,没有指定挂载的路径,具名挂载的路径在/var/lib/docker /volumes/挂载文件名,目录下。

-v /data/:/data/ 是将我们在nginx.conf中配置的静态资源配置,挂载到宿主主机中,如果没有挂载这个静态资源路径,那么nginx启动后会去自己的容器内部找静态资源,而不会到宿主机的/data下面去找静态资源,所以这里要一定要记得将宿主机的静态资源路径挂载到容器内部。

1.3 nginx.conf配置文件
#显示所有的文件挂载
[root@veo _data]# docker volume ls
DRIVER    VOLUME NAME
local     nginx-config
#查看文件挂载的路径
[root@veo _data]# docker volume inspect nginx-config
[
    {
        "CreatedAt": "2021-02-14T08:48:45+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/nginx-config/_data",
        "Name": "nginx-config",
        "Options": null,
        "Scope": "local"
    }
]
#进入该目录,修改nginx.conf
[root@veo _data]# cd /var/lib/docker/volumes/nginx-config/_data
[root@veo _data]# ll
total 36
drwxr-xr-x 2 root root   26 Feb 13 21:48 conf.d
-rw-r--r-- 1 root root 1007 Dec 15 21:59 fastcgi_params
-rw-r--r-- 1 root root 2837 Dec 15 21:59 koi-utf
-rw-r--r-- 1 root root 2223 Dec 15 21:59 koi-win
-rw-r--r-- 1 root root 5231 Dec 15 21:59 mime.types
lrwxrwxrwx 1 root root   22 Dec 15 21:59 modules -> /usr/lib/nginx/modules
-rw-r--r-- 1 root root  845 Feb 14 08:48 nginx.conf
-rw-r--r-- 1 root root  636 Dec 15 21:59 scgi_params
-rw-r--r-- 1 root root  664 Dec 15 21:59 uwsgi_params
-rw-r--r-- 1 root root 3610 Dec 15 21:59 win-utf
http{
	server{
	listen 80;
	server_name localhost;
	
	location /images/ {
		root  /data/;
		autoindex on;
	}
	location  /www/ {
		root  /data/;
		expires 14d;
		index index.html index.htm;
	} 
	}
}
1.4 创建静态资源文件夹和添加静态资源

在这里插入图片描述

1.5 访问
  1. http://ip地址/www/a.html
  2. http://ip地址/images/
1.6 配置代理Tomcat
  1. Dokcer启动Tomcat容器
docker run -d -p 8080:8080 --name tomcat tomcat
  1. 启动nginx,挂载文件
docker run -d -p 80:80 --name nginx01 -v nginx-config:/etc/nginx -v /data/:/data/ nginx
  1. 修改配置文件
http{
	server{
	listen 80;
	server_name localhost;
	
	location / {
		proxy_pass http://ip地址:8080;
	}
	}
}

代理ip地址问题

  • ip地址可以为公网ip
  • ip地址可以为主机内的私网ip
  • 不可以为127.0.0.1环回ip

因为nginx在docker容器中,Docker默认使用虚拟网桥docker0与宿主主机通信,所以不能使用127.0.0.1:8080来访问宿主机里的Tomcat,而应该使用公有ip或宿主主机的私有ip来反向代理Tomcat。

问题:
  1. nginx如果想要监听多个端口,可以改变nginx的网络模式(默认为桥接模式),使用host网络模式,使容器和宿主机共享网络栈,前提是80端口没有被占用。

    docker run -d --net host --name nginx02 -v nginx-config:/etc/nginx -v /data/:/data/ nginx
    
    #如果运行不起,查看nginx02的日志信息
    docker logs nginx02
    
  2. 访问nginx的时候不是客户端访问,而是宿主机通过docker0桥接的方式访问的,所以proxy_pass的地址要写具体的ip,而不是localhost。

二、Docker安装Tomcat

  1. 下载镜像
docker pull tomcat
  1. 运行
docker run -d -p 8080:8080 --name tomcat tomcat
  1. 访问出现404页面,进入容器发现webapps内部是空的,webapps.dist文件下有内容,将webapp.dist重命名为webapps,进入容器修改如下,修改后,要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器
docker exec -it tomcat /bin/bash
root@e39949855588:/usr/local/tomcat# ls
BUILDING.txt	 LICENSE  README.md	 RUNNING.txt  conf  logs	    temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin	      lib   native-jni-lib  webapps  work
root@e39949855588:/usr/local/tomcat# rm -rf webapps
root@e39949855588:/usr/local/tomcat# mv webapps.dist webapps
  1. 访问成功,如果想定制自己的站点可以将tomcat的webapps挂载出来
docker run --name tomcat -p 8080:8080 -v /root/tomcat/webapps/www:/usr/local/tomcat/webapps/www -d tomcat

三、Docker安装mysql

  1. 下载镜像
docker pull mysql:8.0.27
  1. 创建mysql要挂载的文件目录和配置文件
# 创建容器挂在文件目录
mkdir -p /docker-data/mysql/{data,log,my.conf.d,mysql-files}

# 添加文件权限
chmod -R 777 /docker-data/mysql

# 进入mysql配置目录添加配置文件
cd /docker-data/mysql/my.conf.d/

# 添加配置文件,并将如下配置写入该文件中
vi my.cnf

配置文件内容如下:

[client]
# 默认字符集
#default-character-set=utf8
[mysql]
# 默认字符集
#default-character-set=utf8
[mysqld]
# 
server-id=01
port=3306
## 开启二进制日志功能
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
# 忽略大小写
lower_case_table_names=1
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
# 数据库数据存放目录
datadir= /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
skip-symbolic-links=0
# 最大链接数
max_connections=200
# 最大失败次数
max_connect_errors=10
# 默认时区
default-time_zone='+8:00'
character-set-client-handshake=FALSE
character_set_server=utf8mb4
# default-character-set=utf8
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'
# 默认使用‘mysql_native_password’插件认证
default_authentication_plugin=mysql_native_password
# Custom config should go here
!includedir /etc/mysql/conf.d/

配置文件配置:default_authentication_plugin=mysql_native_password解决navicat 连接数数据库报1045码错误。

原因:该报错是由于目前已有的Navicat客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式,如mysql_native_password。

  1. 运行容器,并将数据库中的数据持久化到本地
#运行容器,并挂载文件
docker run -d -p 3306:3306 --name mysql -v /docker-data/mysql/my.conf.d/my.cnf:/etc/mysql/my.cnf:rw -v /docker-data/mysql/log:/var/log/mysql:rw -v /docker-data/mysql/data:/var/lib/mysql:rw -v /docker-data/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root --restart=always mysql:8.0.27
  1. 使用客户端连接测试

四、Docker安装redis

  1. 下载镜像
docker pull redis
  1. 运行镜像设置登录密码,并持久化到本地
[root@veo ~]# docker run -d --name redis-server -p 6379:6379 -v /docker-images/redis/conf/redis-6379.conf:/etc/redis/redis.conf -v  /docker-images/redis/data:/data redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass "redis123"
  • -v :挂载宿主机的配置文件到容器中,这里要新建docker-images目录并上传redis的配置文件
  • /etc/redis/redis.conf :让redis以指定的配置文件启动,而不是默认无配置启动
  • –appendonly yes: redis启动后开启数据持久化
  • –requirepass “redis123”:设置redis的连接密码
  • 注意docker中redis配置文件中daemonize不可以配置为yes,否则redis启动不起来
  1. 客户端连接测试

五、Docker安装rabbitmq

  1. 下载镜像
docker pull rabbitmq:management
  1. 运行镜像
docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin 
-e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management

3.访问http://ip地址:15672

六、Docker安装Portainer

Portainer官网:Container Management | Kubernetes GUI | Docker Swarm GUI | Portainer

  1. 创建挂载的数据卷

    docker volume create portainer_data
    
  2. 下载镜像并运行

    docker run -d -p 9000:9000 -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.11.1
    

    其中:9000为Portainer管理后台的http端口,9443为Portainer的https访问端口,这里启动成功后就可以访问了。

七、Docker安装nacos并配置mysql8.0

配置mysql8.0的数据持久化和启动

  1. 启动镜像

    docker run -d -p 3306:3306 --name mysql -v /docker-data/mysql/conf:/etc/mysql -v /docker-data/mysql/conf:/var/lib/mysql -v /docker-data/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root --restart=always mysql
    
  2. 在数据库中创建nacos的数据库和所需要的数据表这里的库名为:nacos,数据库脚本如下

    /*
     * 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 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 CURRENT_TIMESTAMP COMMENT '创建时间',
      `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
      `src_user` text COMMENT 'source user',
      `src_ip` varchar(50) 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 CURRENT_TIMESTAMP COMMENT '创建时间',
      `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
      `src_user` text COMMENT 'source user',
      `src_ip` varchar(50) 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 CURRENT_TIMESTAMP COMMENT '创建时间',
      `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
      `src_user` text COMMENT 'source user',
      `src_ip` varchar(50) 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 CURRENT_TIMESTAMP COMMENT '创建时间',
      `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP 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 CURRENT_TIMESTAMP,
      `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `src_user` text,
      `src_ip` varchar(50) 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 CURRENT_TIMESTAMP COMMENT '创建时间',
      `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP 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,
    	UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
    );
    
    CREATE TABLE `permissions` (
        `role` varchar(50) NOT NULL,
        `resource` varchar(255) NOT NULL,
        `action` varchar(8) NOT NULL,
        UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
    );
    
    INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
    
    INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
    
  3. 创建nacos数据持久化保存的目录和配置文件

    # 创建日志文件目录
    mkdir -p /docker-data/nacos-single/logs
    
    # 创建配置文件目录
    mkdir -p /docker-data/nacos-single/conf
    
    # 在配置文件目录下新建如下两个配置文件
    cd /docker-data/nacos-single/conf
    
    # 文件内容如下,配置文件内容可以从运行的容器中复制
    vi custom.properties
    vi application.properties
    

    custom.properties,里面配置自己前面启动数据的内网ip和数据库名称、用户名、密码

    server.contextPath=/nacos
    server.servlet.contextPath=/nacos
    server.port=8848
     
    spring.datasource.platform=mysql
     
    db.num=1
    db.url.0=jdbc:mysql://172.17.0.3:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=root
     
     
    nacos.cmdb.dumpTaskInterval=3600
    nacos.cmdb.eventTaskInterval=10
    nacos.cmdb.labelTaskInterval=300
    nacos.cmdb.loadDataAtStart=false
     
    management.metrics.export.elastic.enabled=false
     
    management.metrics.export.influx.enabled=false
     
     
    server.tomcat.accesslog.enabled=true
    server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
     
     
    nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
    nacos.naming.distro.taskDispatchThreadCount=1
    nacos.naming.distro.taskDispatchPeriod=200
    nacos.naming.distro.batchSyncKeyCount=1000
    nacos.naming.distro.initDataRatio=0.9
    nacos.naming.distro.syncRetryDelay=5000
    nacos.naming.data.warmup=true
    nacos.naming.expireInstance=true
    

    application.properties,里面配置自己前面启动数据的内网ip和数据库名称、用户名、密码

    # spring
    server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
    server.contextPath=/nacos
    server.port=${NACOS_APPLICATION_PORT:8848}
    spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}
    nacos.cmdb.dumpTaskInterval=3600
    nacos.cmdb.eventTaskInterval=10
    nacos.cmdb.labelTaskInterval=300
    nacos.cmdb.loadDataAtStart=false
    db.num=${MYSQL_DATABASE_NUM:1}
    # 这里配置为自己前面启动的数据库的内网ip以及数据库名称信息
    db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:172.17.0.3}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}
    #db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true}
    # 配置数据用户名和密码
    db.user=${MYSQL_SERVICE_USER:root}
    db.password=${MYSQL_SERVICE_PASSWORD:root}
    ### The auth system to use, currently only 'nacos' is supported:
    nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
    
    
    ### The token expiration in seconds:
    nacos.core.auth.default.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
    
    ### The default token:
    nacos.core.auth.default.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}
    
    ### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
    nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
    nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
    nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:serverIdentity}
    nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:security}
    server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
    server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
    # default current work dir
    server.tomcat.basedir=
    ## spring security config
    ### turn off security
    nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
    # metrics for elastic search
    management.metrics.export.elastic.enabled=false
    management.metrics.export.influx.enabled=false
    
    nacos.naming.distro.taskDispatchThreadCount=10
    nacos.naming.distro.taskDispatchPeriod=200
    nacos.naming.distro.batchSyncKeyCount=1000
    nacos.naming.distro.initDataRatio=0.9
    nacos.naming.distro.syncRetryDelay=5000
    nacos.naming.data.warmup=true
    
  4. 启动nacos,这里配置环境变量参考官网

    docker run --name nacos-single -d \
    -e MODE=standalone \
    -e SPRING_DATASOURCE_PLATFORM=mysql \
    -e MYSQL_MASTER_SERVICE_HOST=172.17.0.3 \
    -e MYSQL_MASTER_SERVICE_PORT=3306 \
    -e MYSQL_MASTER_SERVICE_DB_NAME=nacos_standalone \
    -e MYSQL_MASTER_SERVICE_USER=root \
    -e MYSQL_MASTER_SERVICE_PASSWORD=root \
    -v /docker-data/nacos-single/logs:/home/nacos/logs \
    -v /docker-data/nacos-single/conf/custom.properties:/home/nacos/init.d/custom.properties \
    -v /docker-data/nacos-single/conf/application.properties:/home/nacos/conf/application.properties \
    -p 8848:8848  \
    --restart=always \
    nacos/nacos-server:1.4.2
    
  5. 浏览器访问:ip:8848/nacos,输入用户名:nacos,密码:nacos


更多:Docker基础

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值