赞
踩
目录
在终端使用 brew 命令安装 Docker
brew install --cask --appdir=/Applications docker
中间会让你输入电脑开机密码,安装成功后,双击 Docker 图标就可以运行
没有 brew 命令的要么自己装一个Homebrew,要么去官网手动安装Docker。
打开终端输入 docker --version 即可看到安装成功
设置 -> Docker Engine 修改镜像地址,阿里云的镜像要去阿里云服务器那里获取自己的镜像地址
- {
- "builder": {
- "gc": {
- "defaultKeepStorage": "20GB",
- "enabled": true
- }
- },
- "experimental": false,
- "registry-mirrors": [
- "https://docker.mirrors.ustc.edu.cn",
- "https://registry.docker-cn.com",
- "http://hub-mirror.c.163.com"
- ]
- }
打开终端输入 docker info 即可查看镜像地址是否被更改成功
使用docker pull nacos/nacos-server 总会报错,原因是Docker会根据CPU架构拉取对应的架构版本,而Docker识别到M1/M2芯片需要的架构版本是 linux/arm64/v8 ,而在镜像库里 Nacos 最新版没有 linux/arm64/v8 架构的,其他MySQL、Redis等是有的,正常用命令拉取即可
effy@EFFYdeMacBook-Pro ~ % docker pull nacos/nacos-server
Using default tag: latest
latest: Pulling from nacos/nacos-server
no matching manifest for linux/arm64/v8 in the manifest list entries
可以通过
uname -m
命令查看主机(虚拟机)的系统架构docker可以通过
--platform <系统架构>
命令获取指定系统架构的镜像由于我查看本机是arm64架构的,所以加上指定架构 --platform linux/amd64 拉取镜像
docker pull --platform linux/amd64 nacos/nacos-server
如果想拉取指定版本,就在命令后面加上版本号,:Tag
例如: docker pull --platform linux/amd64 nacos/nacos-server:v2.4.1
在终端输入 docker images 查看本地镜像
docker images
使用 docker rmi 镜像名称/镜像Id 可以删除镜像
docker rmi 镜像名称/镜像ID
在终端执行下面的命令,注意:如果 Nacos 版本在2.0及以上,需要把8848、9848和9849三个端口映射出来,否则访问会404失败。Mac苹果电脑,并且在 Docker 上运行某个应用,启动命令需要加入 --platform linux/amd64 ,否则会有警告,影响后面
docker run --platform linux/amd64 --name nacos --env MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 -d nacos/nacos-server
这个命令会启动一个名为 Nacos 的容器,并将其绑定到本地机器的 8848 端口,并设置容器模式为 standalone。
查看 Nacos 运行状态
docker ps
笔者太懒了,直接在用户下写shell脚本命名叫startNacos.sh,运行脚本./startNacos.sh就可以启动了,如果是拉取的指定版本号,尾部也要加上指定版本号。
- # 在终端执行
- touch ~/startNacos.sh
- vi ~/startNacos.sh
- # 在startNacos.sh复制粘贴下面的代码,下面的这个#!/bin/sh也要加上
-
- #!/bin/sh
- docker run --platform linux/amd64 \
- --name nacos --env MODE=standalone \
- -p 8848:8848 -p 9848:9848 -p 9849:9849 \
- -d nacos/nacos-server
-
- # 在终端继续执行下面的代码,就可以启动了
- ./startNacos.sh
不懂 Docker 这串命令的请看这里:
- docker run -d --name nacos \ -d 表示运行在后台,--name 指定名称为nacos
- --ip 0.0.0.0 \ 自定义分配 IP 地址,可忽略
- -p 8848:8848 \ 前者为暴露给外部访问的端口,后者为nacos容器端口
- -p 9848:9848 \ 9848是nacos2.0.0版本以上必须要加上端口映射
- -p 9849:9849 \ 9849是nacos2.0.0版本以上必须要加上端口映射
- --env MODE=standalone \ nacos以单机版启动,默认为cluster(集群)
- --env NACOS_AUTH_ENABLE=true \ 如果使用官方镜像,请在启动docker容器时,添加如下环境变量
- -v /www/wwwroot/changjing/docker/nacos/conf/:/home/nacos/conf \ nacos 配置文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
- -v /www/wwwroot/changjing/docker/nacos/logs:/home/nacos/logs \ nacos 日志文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
- -v /www/wwwroot/changjing/docker/nacos/data:/home/nacos/data \ nacos 数据文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
- nacos/nacos-server:v2.2.1 指定 docker nacos 版本,这里是2.2.1版本
启动完 Nacos 容器后,就可以通过 http://localhost:8848/nacos 访问 Nacos Web 控制台了。在控制台上,可以进行服务注册、配置管理和服务发现等操作。
此时 docker desktop 里就有这个容器了
等你长大了,到时候就长这样,可以看到与其他不同的是 Nacos 那里是有一个amd64的
- # 进入容器
- docker exec -it nacos /bin/bash
- # 退出容器
- exit
但如果读者想用自己的MySQL,而不是Nacos内置的数据库,那么可以继续往下阅读
默认情况下,Nacos 使用内置的 Derby 数据库进行数据存储。虽然 Derby 是一个轻量级的数据库,但当数据量较大时,它可能会导致性能瓶颈和数据丢失的问题。因此,建议将 Nacos 数据库存储改为 MySQL 或 PostgreSQL 等外部数据库。
只需要新建conf的挂载即可,其他目录的挂载会自动生成目录(如logs)
mkdir ~/nacos/conf
把 Nacos 容器中的/home/nacos/conf文件夹拷贝
docker cp nacos:/home/nacos/conf ~/nacos
注意:宿主路径填写/nacos,后面不需要写conf,会自动覆盖
我们看下/nacos/conf文件下,nacos完整的配置信息已拷贝过来
在启动 Nacos 容器之前,需要修改配置文件以将 Nacos 数据库存储改为 MySQL。
vi ~/nacos/conf/application.properties
如果不知道ip写什么的,就打开终端,输入ifconfig,ip在en0的inet后面。比如:192.x.x.x,或者10.x.x.x,或者172.x.x.x的
如果还需要设置nacos的账号密码,则在配置文件中额外添加以下代码,默认账号密码都是nacos
- ### 开启鉴权
- nacos.core.auth.enabled=true
- # 关闭使用user-agent判断服务端请求并放行鉴权的功能
- nacos.core.auth.enable.userAgentAuthWhite=false
- # 配置自定义身份识别的key和value,这两个属性是auth的白名单,用于标识来自其它服务器的请求,具体实现见 com.alibaba.nacos.core.auth.AuthFilter。
- nacos.core.auth.server.identity.key=authKey
- nacos.core.auth.server.identity.value=shigzh
- # 自定义用于生成JWT令牌的密钥,注意:原始密钥长度不得低于32字符,且一定要进行Base64编码,否则无法启动节点。
- nacos.core.auth.plugin.nacos.token.secret.key=bmFjb3NfMjAyNDAxMTBfc2hpZ3poX25hY29zX3Rva2Vu
- # 权限缓存开关,开启后权限缓存的更新默认有15秒的延迟,默认 : false
- nacos.core.auth.caching.enabled=true
- docker exec -it nacos /bin/bash
- cd /home/nacos/conf
在 conf 目录下,可以找到 application.properties 文件,备份该文件后直接修改该文件。
cp application.properties application_bak.properties
vi application.properties
与方式一同样操作,这种方式在后续重启 Nacos 的时候命令不一样。
首先,需要在本地机器或其他服务器上安装 MySQL 数据库。可以使用以下命令安装 MySQL:
brew install mysql
安装完成 MySQL 后,需要创建一个新的数据库和用户,并授予其访问权限。可以使用以下命令创建一个名为 nacos 的数据库和用户:
创建SQL脚本在官方的GitHub上,这里附上gitee地址:
distribution/conf/mysql-schema.sql · Gitee 极速下载/Nacos - Gitee.com
- mysql -u root -p
- CREATE DATABASE nacos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- CREATE USER 'nacos'@'%' IDENTIFIED BY '123456';
- GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'%';
- FLUSH PRIVILEGES;
- EXIT;
这样,就创建了一个名为 nacos 的数据库和一个名为 nacos 的用户,并赋予它们访问权限。
如果MySQL是8以上的则执行
- mysql -u root -p
- CREATE DATABASE nacos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- CREATE USER 'nacos'@'%' IDENTIFIED BY '123456';
- GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'%' with grant option;
- FLUSH PRIVILEGES;
- EXIT;
把下面的SQL在Mysql(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.
- */
- /******************************************/
- /* 表名称 = 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(128) DEFAULT NULL COMMENT 'group_id',
- `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 COMMENT 'app_name',
- `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
- `c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description',
- `c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage',
- `effect` varchar(64) DEFAULT NULL COMMENT '配置生效的描述',
- `type` varchar(64) DEFAULT NULL COMMENT '配置的类型',
- `c_schema` text COMMENT '配置的模式',
- `encrypted_data_key` text 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';
- /******************************************/
- /* 表名称 = 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(128) 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 COMMENT 'app_name',
- `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='增加租户字段';
- /******************************************/
- /* 表名称 = 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 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';
- /******************************************/
- /* 表名称 = 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';
- /******************************************/
- /* 表名称 = 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 COMMENT 'nid, 自增长标识',
- 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';
- /******************************************/
- /* 表名称 = 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容量信息表';
- /******************************************/
- /* 表名称 = his_config_info */
- /******************************************/
- CREATE TABLE `his_config_info` (
- `id` bigint(20) unsigned NOT NULL COMMENT 'id',
- `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增标识',
- `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',
- `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',
- `op_type` char(10) DEFAULT NULL COMMENT 'operation type',
- `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
- `encrypted_data_key` text 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='多租户改造';
- /******************************************/
- /* 表名称 = 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 COMMENT 'username',
- `password` varchar(500) NOT NULL COMMENT 'password',
- `enabled` boolean NOT NULL COMMENT 'enabled'
- );
- CREATE TABLE `roles` (
- `username` varchar(50) NOT NULL COMMENT 'username',
- `role` varchar(50) NOT NULL COMMENT 'role',
- UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
- );
- CREATE TABLE `permissions` (
- `role` varchar(50) NOT NULL COMMENT 'role',
- `resource` varchar(255) NOT NULL COMMENT 'resource',
- `action` varchar(8) NOT NULL COMMENT 'action',
- 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');
修改完配置文件后,需要重新启动 Nacos 容器。可以使用以下命令停止并删除之前的容器:
docker stop nacos && docker rm nacos
然后,根据之前的步骤启动 Nacos 容器,并加上以下环境变量:
请自行将【你的Mac电脑用户名】【前面配置文件中配置jdbc的ip地址】【你的mysql数据库用户名】【你的mysql数据库密码】填入下面的命令再运行,请注意后面必须要有个空格和反斜杠\,最后一行不用添加反斜杠\
- docker run --platform linux/amd64 \
- --name nacos --env MODE=standalone \
- -p 8848:8848 -p 9848:9848 -p 9849:9849 \
- --privileged=true --restart=always \
- -e SPRING_DATASOURCE_PLATFORM=mysql \
- -e MYSQL_SERVICE_HOST=前面配置文件中配置jdbc的ip地址 \
- -e MYSQL_SERVICE_PORT=3306 \
- -e MYSQL_SERVICE_DB_NAME=nacos \
- -e MYSQL_SERVICE_USER=你的mysql数据库用户名 \
- -e MYSQL_SERVICE_PASSWORD=你的mysql数据库密码 \
- -v /Users/你的Mac电脑用户名/nacos/logs:/home/nacos/logs \
- -v /Users/你的Mac电脑用户名/nacos/conf:/home/nacos/conf \
- -d nacos/nacos-server
启动完容器后,就可以在 Nacos Web 控制台中使用 MySQL 数据库存储了。
参数详解(根据自己的需要,选择参数)
-p 8848:8848 # 宿主机端口:容器端口
–name nacos # 容器名字
–privileged=true # 使用该参数,container内的root拥有真正的root权限
–network host # 设置属于该容器的网络
–restart=always # 总是重启
-e PREFER_HOST_MODE=hostname # 是否支持 hostname,可选参数为hostname/ip,默认值是当前宿主机的ip
-e MODE=standalone # 使用 standalone模式(单机模式),MODE值有cluster模式/standalone模式两种
-e JVM_XMS=256m # -Xms 为jvm启动时分配的内存[我设置会导致nacos启动异常,无法访问,故没有设置]
-e JVM_XMX=1024m # -Xmx 为jvm运行过程中分配的最大内存[我设置会导致nacos启动异常,无法访问,故没有设置]
-d nacos/nacos-server # 后台启动模式及使用的镜像
-v /Users/effy/nacos/logs:/home/nacos/logs \-v:挂载宿主机的一个目录, 持久化存储的关键所在,将主机目录挂载到容器对应目录,分别是:配置文件、日志文件
–restart=always:容器自动启动参数,其值可以为[no,on-failure,always]
no为默认值,表示容器退出时,docker不自动重启容器
on-failure表示,若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃
always表示,只要容器退出,则docker将自动重启容器
如果你选择的是方式二修改 Nacos 配置文件,那么则使用下面的命令重新启动 Nacos 容器
- docker run --platform linux/amd64 \
- --name nacos --env MODE=standalone \
- -p 8848:8848 -p 9848:9848 -p 9849:9849 \
- -d nacos/nacos-server
- --privileged=true \
- --restart=always \
- -e PREFER_HOST_MODE=hostname \
- -e JVM_XMS=256m \
- -e JVM_XMX=1024m
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。