windows docker安装nacos

下载/查看镜像

docker pull nacos/nacos-server:v2.5.1
docker pull nacos/nacos-server  下载最新版本
docker pull nacos/nacos-server:版本号
例:docker pull nacos/nacos-server:v2.5.1
# 查看镜像
docker images

挂载目录创建

在这里插入图片描述

启动nacos

docker run --name nacos -d -p 8848:8848 -e MODE=standalone  nacos/nacos-server:v2.5.1
# docker run -d :启动容器, -d 表示后台启动并返回容器id
# –name nacos :容器名称为nacos
# -p 8848:8848 :容器相关端口号,“:”前为宿主机访问启动容器端口号,“:”后为容器端口号
# -e MODE=standalone : 以单机版启动
# nacos/nacos-server:v2.5.1 :启动容器的nacos镜像

将容器内数据cp到本地

docker cp nacos:/home/nacos/conf/ D:\docker\volumes\nocas
docker cp nacos:/home/nacos/logs/ D:\docker\volumes\nocas
docker cp nacos:/home/nacos/data/ D:\docker\volumes\nocas

nacos配置信息,sql执行

创建数据库nacos-config:
执行sql:D:\docker\volumes\nocas\conf\mysql-schema.sql
在这里插入图片描述

修改配置文件

修改文件:D:\docker\volumes\nocas\conf\application.properties

# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.error.include-message=ALWAYS
# default current work dir
server.tomcat.basedir=file:.
#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
#spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.sql.init.platform=mysql
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://172.24.80.1:33306/nacos-config?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user.0=root
db.password.0=123456
## DB connection pool settings
db.pool.config.connectionTimeout=${DB_POOL_CONNECTION_TIMEOUT:30000}
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
### The default token:
nacos.core.auth.plugin.nacos.token.secret.key=VGNteEp3MDVrJC1femN4Lik4RXRGQ15EXkYxVyFJUHI=
### 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:nacosKey}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:nacosValue}
## 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
nacos.console.ui.enabled=true
nacos.core.param.check.enabled=true

启动

docker ps
docker rm -f 8d54a76d1295【刚才启动的nacos】

在这里插入图片描述

docker run -d --restart=always --name nacos2.5 -p 8848:8848 -p 9848:9848 -p 9849:9849 --env MODE=standalone --env NACOS_AUTH_ENABLE=true -v D:\docker\volumes\nocas\conf/:/home/nacos/conf -v D:\docker\volumes\nocas\logs:/home/nacos/logs -v D:\docker\volumes\nocas\data:/home/nacos/data nacos/nacos-server:v2.5.1
docker run -d --name nacos \                                            -d 表示运行在后台,--name 指定名称为nacos
-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.5.1                                               指定 docker nacos 版本

访问浏览器:http://172.24.80.1:8848/nacos/#/login 或者http://localhost:8848/nacos/#/login
在这里插入图片描述

参考博客:https://blog.youkuaiyun.com/qq_27257535/article/details/146482577

<think> 我们正在处理用户关于在Windows系统下使用Docker部署Nacos的详细步骤的请求。 根据之前的对话历史,用户遇到了处理器架构不匹配的问题,但现在用户的问题是关于在Windows系统下使用Docker部署Nacos。 我们需要注意的是,用户的环境是Windows,并且之前提到过WSL(Windows Subsystem for Linux)的使用,因此部署Docker可能需要依赖WSL2。 根据引用[4]提供的信息,我们可以知道在Windows下部署Nacos需要以下步骤: 1. 确保已安装Docker Desktop for Windows,并启用了WSL2(推荐)或Hyper-V。 2. 拉取MySQL镜像和Nacos镜像。 3. 创建专用网络(可选但推荐)。 4. 启动MySQL容器并进行初始化。 5. 启动Nacos容器并连接到MySQL容器。 但是,引用[4]中给出的命令是适用于Linux/macOS的(例如反引号`用于换行),在Windows命令提示符或PowerShell中需要调整。 因此,我们需要提供适用于Windows PowerShell(或CMD)的命令。 另外,引用[3]提到了使用`--net=host`网络模式,但在WindowsDocker中,host网络模式并不像Linux那样直接支持(在Docker for Windows中,host驱动仅适用于Linux容器,且需要特殊设置)。因此,我们更倾向于使用桥接网络或自定义网络。 步骤详细说明: 步骤1:准备工作 - 安装Docker Desktop for Windows,并确保使用WSL2后端(设置中启用)或Hyper-V。 - 确保Docker服务正在运行。 步骤2:拉取镜像 - 在PowerShell中执行: ```powershell docker pull mysql:5.7 docker pull nacos/nacos-server:latest ``` 步骤3:创建专用网络(可选但推荐) - 在PowerShell中执行: ```powershell docker network create nacos_network ``` 步骤4:启动MySQL容器 - 注意:在Windows中,长命令可以使用反引号`(PowerShell中)或^(CMD中)换行。这里以PowerShell为例。 - 执行命令: ```powershell docker run -d --name nacos-mysql ` --network nacos_network ` -p 3306:3306 ` -e MYSQL_ROOT_PASSWORD=root ` -e MYSQL_DATABASE=nacos ` -e MYSQL_USER=nacos ` -e MYSQL_PASSWORD=nacos ` mysql:5.7 ``` 注意:如果用户已经有一个MySQL服务在3306端口,可以更改映射端口,例如-p 3307:3306。 步骤5:初始化Nacos数据库 - 我们需要将Nacos的数据库初始化脚本导入到MySQL容器中。首先,我们需要获取Nacos的SQL脚本。 - 方法1:从Nacos的GitHub仓库下载(推荐): 下载地址:https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql 然后复制到容器中执行: ```powershell # 将下载的mysql-schema.sql文件复制到容器docker cp .\mysql-schema.sql nacos-mysql:/tmp/mysql-schema.sql # 进入容器并执行SQL docker exec -it nacos-mysql bash mysql -uroot -proot nacos < /tmp/mysql-schema.sql exit ``` - 方法2:通过临时启动一个Nacos容器来获取SQL文件(如引用[3]所示): ```powershell # 临时启动一个Nacos容器(注意版本要与之前拉取的镜像一致,这里用latest) docker run -d --name nacos-temp nacos/nacos-server:latest # 从容器中复制出mysql-schema.sql docker cp nacos-temp:/home/nacos/conf/mysql-schema.sql ./ # 停止并删除临时容器 docker stop nacos-temp docker rm nacos-temp # 然后将得到的mysql-schema.sql复制到MySQL容器并执行(同方法1) ``` 步骤6:启动Nacos容器 - 我们需要配置Nacos容器连接到MySQL容器,并设置必要的环境变量。 - 在PowerShell中执行: ```powershell docker run -d --name nacos ` --network nacos_network ` -p 8848:8848 ` -e MODE=standalone ` -e SPRING_DATASOURCE_PLATFORM=mysql ` -e MYSQL_SERVICE_HOST=nacos-mysql ` -e MYSQL_SERVICE_PORT=3306 ` -e MYSQL_SERVICE_USER=nacos ` -e MYSQL_SERVICE_PASSWORD=nacos ` -e MYSQL_SERVICE_DB_NAME=nacos ` -e NACOS_SERVER_PORT=8848 ` nacos/nacos-server:latest ``` 注意:这里我们使用的是自定义网络`nacos_network`,所以可以直接用容器名`nacos-mysql`作为主机名。 步骤7:验证 - 打开浏览器访问:http://localhost:8848/nacos - 默认账号密码:nacos/nacos 注意事项: - 如果使用不同的MySQL版本,请相应调整镜像标签。 - 如果遇到端口冲突,可以更改映射端口(例如将8848改为其他端口:-p 8858:8848)。 - 数据持久化:为了持久化MySQL数据,建议在运行MySQL容器时添加卷映射(-v参数),例如: -v D:/docker_volumes/nacos-mysql:/var/lib/mysql - Nacos的配置持久化到MySQL,所以只要MySQL数据持久化,Nacos的配置数据就会持久化。 引用说明: [^1] 提到Docker部署Nacos简单高效,适合快速启动和测试。 [^4] 提供了在Windows下使用Docker部署Nacos的基本步骤。 因此,我们按照以上步骤编写详细指南。 </think> 以下是在 **Windows 系统下使用 Docker 部署 Nacos** 的详细步骤,结合 WSL 2 和 Docker Desktop 环境优化操作流程: --- ### 📝 前置条件 1. **启用 WSL 2** - 以管理员身份打开 PowerShell 执行: ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all wsl --set-default-version 2 ``` - 重启系统后检查状态: ```powershell wsl -l -v # 确认状态为"Running"且版本为2 ``` 2. **安装 Docker Desktop for Windows** - 官网下载安装包:[Docker Desktop](https://www.docker.com/products/docker-desktop) - 安装时勾选 **Use WSL 2 instead of Hyper-V** ![Docker安装选项](https://user-images.githubusercontent.com/875083/130368979-5f3a3c3a-1c7e-4e5e-8d3c-8d7b9b0b3a3c.png) --- ### 🔧 详细部署步骤 #### 步骤 1:创建专用网络和存储卷 ```powershell # 创建共享网络 docker network create nacos_net # 创建MySQL数据持久化卷 docker volume create mysql_data ``` #### 步骤 2:启动 MySQL 容器 ```powershell docker run -d --name nacos-mysql ` --network nacos_net ` -p 3306:3306 ` -v mysql_data:/var/lib/mysql ` -e MYSQL_ROOT_PASSWORD=root123 ` -e MYSQL_DATABASE=nacos_config ` -e MYSQL_USER=nacos ` -e MYSQL_PASSWORD=nacos123 ` mysql:8.0 ``` #### 步骤 3:初始化 Nacos 数据库 1. 下载 SQL 脚本: ```powershell curl -O https://raw.githubusercontent.com/alibaba/nacos/master/distribution/conf/mysql-schema.sql ``` 2. 导入数据库: ```powershell docker exec -i nacos-mysql mysql -uroot -proot123 nacos_config < .\mysql-schema.sql ``` #### 步骤 4:启动 Nacos 容器 ```powershell docker run -d --name nacos-server ` --network nacos_net ` -p 8848:8848 ` -e MODE=standalone ` -e SPRING_DATASOURCE_PLATFORM=mysql ` -e MYSQL_SERVICE_HOST=nacos-mysql ` -e MYSQL_SERVICE_DB_NAME=nacos_config ` -e MYSQL_SERVICE_USER=nacos ` -e MYSQL_SERVICE_PASSWORD=nacos123 ` -e NACOS_AUTH_ENABLE=true ` # 启用鉴权 nacos/nacos-server:v2.2.3 ``` --- ### ✅ 验证部署 1. 访问控制台: `http://localhost:8848/nacos` ![Nacos登录界面](https://nacos.io/img/nacos_colorful.png) 2. 使用默认账号登录: - 用户名:`nacos` - 密码:`nacos` 3. 检查数据库连接: ```powershell docker exec -it nacos-mysql mysql -unacos -pnacos123 mysql> SHOW TABLES FROM nacos_config; ``` 应看到 `config_info`、`users` 等表[^3][^4] --- ### ️ 常见问题解决 | 问题现象 | 解决方案 | |----------------------------------|------------------------------------------------------------------------| | 无法访问8848端口 | 检查防火墙:`netsh advfirewall firewall add rule name="Nacos" dir=in action=allow protocol=TCP localport=8848` | | MySQL连接超时 | 确认容器在同一网络:`docker network inspect nacos_net` | | 启动报错“No datasource set” | 检查环境变量拼写:`MYSQL_SERVICE_HOST` 不能写成 `MYSQL_HOST` [^4] | | 鉴权失败 | 添加 `-e NACOS_AUTH_ENABLE=true` 并重启容器 | --- ### 💡 持久化配置建议 ```powershell # 添加Nacos配置持久化卷 docker run ... \ -v nacos_logs:/home/nacos/logs \ -v nacos_conf:/home/nacos/conf \ nacos/nacos-server:v2.2.3 ``` 这样即使容器重启,配置文件和日志也不会丢失[^1][^3] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值