Linux离线安装JDK、Docker、Mysql、Nginx、Redis、Nacos
MD文件以及安装包下载
- 百度云链接,提取码为:trea
注:文件大小为1.49GB,离线如何获取docker镜像的方法在本文“docker离线部署镜像”
Linux配置静态IP
- 编辑配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens192
- 将BOOTPROTO修改为static
将ONBOOT修改为yes
添加静态地址IPADDR=192.168.0.188
添加子网掩码NETMASK=255.255.255.0
添加网关GATEWAY=192.168.0.1
添加域名系统DNS1=8.8.8.8
添加域名系统DNS2=114.114.114.114 - 重启网络服务:service network restart
安装JDK并配置环境变量
-
将jdk压缩包上传到服务器
-
解压:tar -zxvf 包名
-
编辑配置文件:vi /etc/profile
在文件末尾添加
export JAVA_HOME=/home/java/jdk1.8.0_202(jdk解压路径) export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
-
重启配置文件:source /etc/profile
-
检测环境变量是否配置成功:java -version
安装docker服务
-
将docker压缩包上传到服务器
-
解压:tar -zxvf 包名
-
将docker文件夹下面的文件拷贝到/usr/bin目录下:cp -p docker/* /usr/bin
-
将docker注册为service
-
创建docker.service配置文件并编辑:vi /usr/lib/systemd/system/docker.service
-
复制以下内容
[Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target docker.socket [Service] Type=notify EnvironmentFile=-/run/flannel/docker WorkingDirectory=/usr/local/bin ExecStart=/usr/bin/dockerd \ -H tcp://0.0.0.0:4243 \ -H unix:///var/run/docker.sock \ --selinux-enabled=false \ --log-opt max-size=1g ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target
-
重新加载docker配置文件:systemctl daemon-reload
-
-
启动docker:systemctl start docker
注意:如果启动docker提示"Failed to execute operation: Bad message",可能复制docker.service文件时,[Unit] 变成了 t],又或者ExecStart 写成Execstart。
-
查看docker是否启动成功:systemctl status docker
-
设置docker开机自启:systemctl enable docker
-
可能出现的错误
-
启动容器时报以下错误
docker: Error response from daemon: OCI runtime create failed: container_linux.go:449;container init caused "write /proc/self/attr/keycreate: permission denied"": unknown
-
解决方法
-
永久解决
编辑config文件:
vi /etc/selinux/config
将
SELINUX=enforcing
改为SELINUX=disabled
重启服务器
启动docker容器
docker start container-id
-
临时解决
- 输入
setenforce 0
- 启动docker容器
docker start container-id
- 输入
-
-
docker离线部署镜像
-
如何获取镜像?
- 在已经部署了的机器上获取镜像
- 获取镜像名:docker images
- 打包对应的镜像:docker save <镜像名> -o <包名>.tar
- 例如:docker save mysql -o mysql_5.7.tar
-
加载镜像
- 将已打包好的镜像拷贝到服务器上
- docker load -i <包名>.tar
- 例如:docker load -i mysql_5.7.tar
-
docker常用命令
docker search 镜像名称 //搜索镜像 docker pull 镜像名称:版本号 //拉取对应版本的镜像 docker pull 镜像名称 //默认拉取最新的镜像 docker images //查看本地已下载的镜像 docker ps //查看正在运行的容器 docker ps -a //查看所有的容器(包括run、stop、exited状态的) docker container ls //查看正在运行的容器 docker rm 容器ID //只能删除没有在运行的容器 docker rm -f 容器ID //可以删除正在运行的容器 docker run -p 本地主机端口号:容器服务端口号 --name 容器名字 [-e 配置信息修改] -d 镜像名字 docker start 容器ID //启动容器 docker stop 容器ID //终止容器 docker rmi 镜像名称orID //删除镜像
docker安装MySQL
-
创建MySQL测试容器
docker run --restart=always --name mysql_test -p 3306:3306 -e MYSQL_ROOT_PASSWORD='root' -d mysql:8.0.30
-
创建挂载目录
mkdir -p /home/docker/mysql/conf /home/docker/mysql/data
-
查找docker内MySQL配置文件
# 进入容器内 docker exec -it mysql_test bash # 查找my.cnf文件位置 mysql --help | grep my.cnf # 显示如下,路径按优先排序,会是在以下路径里: order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf # 配置文件的路径不一定都一样,退出容器!
-
拷贝my.cnf文件到本地
#查看本地容器ID docker ps -a #格式 #docker cp CONTAINER ID:容器目录 本地目录 #示例 docker cp 容器ID:/etc/my.cnf /home/docker/mysql/conf
-
查找数据文件位置
# 运行docker inspect命令的JSON输出具有一个 Mount密钥,其值提供了有关数据目录卷的信息 docker inspect mysql_test | grep Mounts -A 10 # 输出显示源文件夹:/var/lib/docker/volumes,表示已安装在 /var/lib/mysql容器内的服务器数据目录中 "Mounts": [ { "Type": "volume", "Name": "78be1419137ffebe99beb9fdbaa522f1fab040025e6aeced83272c1312356dd2", "Source": "/var/lib/docker/volumes/78be1419137ffebe99beb9fdbaa522f1fab040025e6aeced83272c1312356dd2/_data", "Destination": "/var/lib/mysql", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" }
-
删除测试容器
docker rm -f 容器ID
-
创建MySQL容器并挂载文件
docker run --restart=on-failure:3 --name mysql -p 3306:3306 -v /home/docker/mysql/conf/my.cnf:/etc/my.cnf -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='root' -d mysql:8.0.30 # --restart=on-failure:3:是指容器在未来出现异常退出(退出码非0)的情况下循环重启3次 # --name:为容器指定一个名字 # -p:指定端口映射,格式为:主机(宿主)端口:容器端口 # -v:绑定挂载 # -e:设置环境变量 # -d:后台运行容器,并返回容器 id
docker安装nginx
-
创建nginx测试容器
docker run --name nginx_test -p 80:80 -d nginx:1.22.0
-
创建挂载目录
mkdir -p /home/docker/nginx
-
进入容器查看相关文件
# 进入nginx容器 docker exec -it nginx_test bash # 查看配置文件 # nginx.conf文件 在 /etc/nginx 目录下 cd /etc/nginx # -rw-r--r--. 1 root root 648 May 24 15:24 nginx.conf # default.conf 在 /etc/nginx/conf.d 目录下 cd /etc/nginx/conf.d # -rw-r--r-- 1 root root 1093 Oct 24 07:19 default.conf # 查看html文件 cd /usr/share/nginx/html # -rw-r--r--. 1 root root 497 May 23 23:59 50x.html # -rw-r--r--. 1 root root 615 May 23 23:59 index.html # 查看日志文件 cd /var/log/nginx # lrwxrwxrwx. 1 root root 11 Aug 2 05:18 access.log -> /dev/stdout # lrwxrwxrwx. 1 root root 11 Aug 2 05:18 error.log -> /dev/stderr
-
拷贝文件到本地
docker cp 容器ID:/etc/nginx/nginx.conf /home/docker/nginx docker cp 容器ID:/etc/nginx/conf.d /home/docker/nginx docker cp 容器ID:/usr/share/nginx/html /home/docker/nginx docker cp 容器ID:/var/log/nginx /home/docker/nginx/logs
-
停止并删除测试容器
docker rm -f 容器ID
-
创建nginx容器并挂载文件
docker run --restart=on-failure:3 --name nginx -p 80:80 -v /home/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/nginx/conf.d:/etc/nginx/conf.d -v /home/docker/nginx/html:/usr/share/nginx/html -v /home/docker/nginx/logs:/var/log/nginx -e TZ=Asia/Shanghai -d nginx:1.22.0 # --restart=on-failure:3:是指容器在未来出现异常退出(退出码非0)的情况下循环重启3次 # --name:为容器指定一个名字 # -p:指定端口映射,格式为:主机(宿主)端口:容器端口 # -v:绑定挂载 # -e:设置环境变量,时区设置为上海 # -d:后台运行容器,并返回容器 id
docker安装redis
-
创建挂载目录并添加配置文件
-
创建目录
mkdir -p /home/docker/redis/data /home/docker/redis/conf
-
在conf下创建redis.conf配置文件
vi /home/docker/redis/conf/redis.conf
-
添加以下内容
# bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 ::1 #bind 127.0.0.1 #允许远程连接 protected-mode no # 端口 port 6379 tcp-backlog 511 # 密码 requirepass root timeout 0 tcp-keepalive 300 daemonize no supervised no pidfile /var/run/redis_6379.pid loglevel notice logfile "" databases 30 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ replica-serve-stale-data yes replica-read-only yes repl-diskless-sync no repl-disable-tcp-nodelay no replica-priority 100 lazyfree-lazy-eviction no lazyfree-lazy-expire no lazyfree-lazy-server-del no replica-lazy-flush no # 持久化 appendonly yes appendfilename "appendonly.aof" no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble yes lua-time-limit 5000 slowlog-max-len 128 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 stream-node-max-bytes 4096 stream-node-max-entries 100 activerehashing yes hz 10 dynamic-hz yes aof-rewrite-incremental-fsync yes rdb-save-incremental-fsync yes
-
-
创建redis容器并挂载文件
docker run --restart=on-failure:3 --name redis -p 6379:6379 -v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data -d redis:7.0.4 redis-server /etc/redis/redis.conf # --restart=on-failure:3:是指容器在未来出现异常退出(退出码非0)的情况下循环重启3次 # --name:为容器指定一个名字 # -p:指定端口映射,格式为:主机(宿主)端口:容器端口 # -v:绑定挂载 # -d:后台运行容器,并返回容器 id # redis-server:/etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是liunx下的/home/docker/redis/conf/redis.conf
docker安装nacos
-
创建nacos数据库
将nacos持久化到mysql数据库中
新建nacos数据库,数据库名为nacos_config
从https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql下载建表语句。也可以将下列语句粘贴执行
/* * 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');
-
创建挂载目录
mkdir -p /home/docker/nacos/conf /home/docker/nacos/data /home/docker/nacos/logs
-
创建nacos测试容器
docker run -d \ -e MODE=standalone \ -e PREFER_HOST_MODE=hostname \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=192.168.0.185 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=root \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -p 8848:8848 \ --name nacos_test \ --restart=on-failure:3 \ nacos/nacos-server:v2.1.0 # MODE=standalone 单节点模式 # SPRING_DATASOURCE_PLATFORM=mysql 使用mysql数据库连接方式 # MYSQL_SERVICE_HOST=192.168.0.185 指定数据库地址 # MYSQL_SERVICE_PORT 数据库端口 # MYSQL_SERVICE_USER 数据库用户名 # MYSQL_SERVICE_PASSWORD 数据库密码 # MYSQL_SERVICE_DB_NAME 数据库名称 # -p 8848:8848 端口映射 # --name nacos_test 容器命名 # --restart=on-failure:3 是指容器在未来出现异常退出(退出码非0)的情况下循环重启3次
-
拷贝配置文件
docker cp nacos_test:/home/nacos/conf/application.properties /home/docker/nacos/conf/ docker cp nacos_test:/home/nacos/conf/nacos-logback.xml /home/docker/nacos/conf/
-
修改application.properties的配置
# spring server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos} server.contextPath=/nacos server.port=${NACOS_APPLICATION_PORT:8848} # 修改此行,将SPRING_DATASOURCE_PLATFORM的默认值""改为mysql 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} # 修改此行,添加MYSQL_SERVICE_HOST的默认值为192.168.0.185,MYSQL_SERVICE_DB_NAME的默认值为nacos db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:192.168.0.185}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos_config}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8} # 修改此行,添加MYSQL_SERVICE_HOST的默认值为192.168.0.185,MYSQL_SERVICE_DB_NAME的默认值为nacos db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST:192.168.0.185}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos_config}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8} # 修改此行,添加MYSQL_SERVICE_USER的默认值为root db.user=${MYSQL_SERVICE_USER:root} # 修改此行,添加MYSQL_SERVICE_PASSWORD的默认值为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/**}
-
删除nacos测试容器
docker rm -f nacos_test
-
重新nacos启动容器
docker run -d \ -e MODE=standalone \ -p 8848:8848 \ -v /home/docker/nacos/conf:/home/nacos/conf \ -v /home/docker/nacos/logs:/home/nacos/logs \ -v /home/docker/nacos/data:/home/nacos/data \ --name nacos \ --restart=on-failure:3 \ nacos/nacos-server:v2.1.0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现