Windows Docker Desktop 安装 Nacos

前言

  以前都是在 Linux 虚拟机上的 Docker 安装应用,这次使用 Windows10 系统的 Docker Desktop 安装 Nacos ,所以用挂载文件就不是很方便了,这次采用启动参数的方式对配置文件赋值。

  以下 Docker 命令操作是在 Windows PowerShell 下执行的。

1 准备工作

  在 Docker Hub 上查看 nacos-server 的版本和配置信息:https://hub.docker.com/r/nacos/nacos-server

  首先在 Tags 标签页,找到自己要安装的版本。

  

    然后在 Overview 标签页,查看 Nacos 所可以使用的 启动参数。

  

 

  截图只是官方页面的一部分启动参数,我们只需要关注这些以下 启动参数 就可以了:

  MODE: cluster 集群 / standalone 单机模式,Nacos默认的是cluster,所以我要设置成  standalone

  SPRING_DATASOURCE_PLATFORM:数据源类型,可填写 mysql

  NACOS_APPLICATION_PORT:Nacos应用的端口,默认是 8848

  MYSQL_SERVICE_HOST:Nacos连接MySQL数据库的IP

  MYSQL_SERVICE_PORT:Nacos连接MySQL数据库的端口号,默认 3306

  MYSQL_SERVICE_DB_NAME:Nacos连接MySQL数据库的库名称

  MYSQL_SERVICE_USER:Nacos连接MySQL数据库的用户名

  MYSQL_SERVICE_PASSWORD:Nacos连接MySQL数据库的密码

  MYSQL_DATABASE_NUM:MySQL数据库的数量,默认1

  MYSQL_SERVICE_DB_PARAM:MySQL数据库的连接参数,默认 characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false

  JVM_XMS:JVM的启动参数 -Xms 默认值 1g

  JVM_XMX:JVM的启动参数 -Xmx 默认值 1g

  JVM_XMN:JVM的启动参数 -Xmn 默认值 512m

  JVM_MS:JVM的启动参数 -XX:MetaspaceSize 默认值 128m

  JVM_MMS:JVM的启动参数 -XX:MaxMetaspaceSize 默认值 320m

 

2 安装Nacos

2.1 拉取Nacos镜像

  我使用的是 Nacos 版本是 2.1.0

PS C:\Users\administrator> docker pull nacos/nacos-server:v2.1.0
v2.2.0: Pulling from nacos/nacos-server
2d473b07cdd5: Pull complete
cee47fd629ae: Pull complete
84a2014f8cf0: Pull complete
c6b323bb84ba: Pull complete
054ba3dd31ca: Pull complete
499f0fb6edda: Pull complete
44f7142cdeb2: Pull complete
16c455a3adda: Pull complete
37ab0ca7ea67: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:be794368c96f90e42a6dd9f288d3fb12d69608cebd782eb091a489ccb48cfd28
Status: Downloaded newer image for nacos/nacos-server:v2.1.0
docker.io/nacos/nacos-server:v2.1.0

 

2.2 配置网络

  为什么要配置网络?因为 Nacos 内要连接MySQL数据库的,我的 MySQL 数据库也是用 Docker启动的,所以2个容器间要通信是需要配置他们使用相同的网络。这个操作要在启动Nacos容器之前。

  注意:这里配置的网络只在镜像内部生效,外部的访问IP是不变,比如我的访问数据库和Nacos 的IP都是 127.0.0.1

  (1)查看原有网络,使用命令 docker network ls 会显示出 docker 环境内的所有网络配置。

PS C:\Users\administrator> docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
fe728090616d   bridge    bridge    local
e29b0f416f65   host      host      local
6e4954693077   none      null      local

   (2)创建一个自己的网络

  # --driver bridge 设置桥接模式
  # --subnet 192.168.0.0/16 子网掩码,16表示65535个网络,192.168.0.2~~192.168.255.255
  # --gateway 192.168.0.1 网关

PS C:\Users\administrator> docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynetwork
4aac7a66417b2e6071443f5b2f12e1b8e5cb4f9f822605ae11cfe2328d7d2aa3

  (3)再次查看网络列表,已经可以看到新创建的 mynetwork 了。

PS C:\Users\administrator> docker network ls
NETWORK ID     NAME        DRIVER    SCOPE
fe728090616d   bridge      bridge    local
e29b0f416f65   host        host      local
4aac7a66417b   mynetwork   bridge    local
6e4954693077   none        null      local

   (4)查看新建的 mynetwork 网络详情,可以看到是我们设置的IP范围。

PS C:\Users\administrator> docker network inspect mynetwork
[
    {
        "Name": "mynetwork",
        "Id": "4aac7a66417b2e6071443f5b2f12e1b8e5cb4f9f822605ae11cfe2328d7d2aa3",
        "Created": "2023-03-10T06:16:01.6152018Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

   (5)启动一个MySQL8,并指定使用的网络是刚才创建的 mynetwork。这个操作是为了保证 MySQL8 和 Nacos 属于一个网段内。

PS C:\Users\administrator> docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -d --net mynetwork mysql:8.0.27
5ded315e2753e2d046a552f61e9f3ab72c9e1baddbb92d96d53bd6091c648520

  (5)再查看网络详情,发现为 MySQL8 指定的IP是 192.168.0.2

PS C:\Users\administrator> docker network inspect mynetwork
[
    {
        "Name": "mynetwork",
        "Id": "26d242c9b58b84a247416cc0981ad2b899ce6cfaf9711b586a4361659b39dd4a",
        "Created": "2023-03-10T06:52:31.7653225Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "5ded315e2753e2d046a552f61e9f3ab72c9e1baddbb92d96d53bd6091c648520": {
                "Name": "mysql8",
                "EndpointID": "cf08e8b4a8aec86120c9a418a6c0f4c2de2575c7edcc7a89b3e6e4e7bc8c20f0",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

 

 2.3 启动Nacos

   Windows PowerShell 下是不支持命令换行的,为了方便展示,改成了下面的格式。

  启动命令时,指定了MySQL8的IP地址, 并且指定在 mynetwork 的网络内,至于数据库的连接参数,因为 Windows PowerShell 下是不支持使用 & 符号的,所以要用双引号括起来。

docker run --env MODE=standalone 
  --env SPRING_DATASOURCE_PLATFORM=mysql
  --env MYSQL_DATABASE_NUM=1
  --env MYSQL_SERVICE_HOST=192.168.0.2
  --env MYSQL_SERVICE_PORT=3306
  --env MYSQL_SERVICE_DB_NAME=nacos_db
  --env MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8"&"connectTimeout=1000"&"socketTimeout=3000"&"autoReconnect=true"&"useUnicode=true"&"useSSL=false"&"serverTimezone=UTC
  --env MYSQL_SERVICE_USER=root
  --env MYSQL_SERVICE_PASSWORD=123456
  --env JVM_XMS=512m
  --env JVM_XMX=512m
  --env JVM_XMN=256m
  --env JVM_MS=64m
  --env JVM_MMS=256m
  --name mynacos -d -p 8848:8848
  --net mynetwork nacos/nacos-server:v2.1.0

 

3. 验证

3.1 查看容器的信息

  Nacos 启动成功后,可以在 Docker Desktop 的 Containers 界面看到,刚才启动的 mysql8 和 mynacos 容器。

 

   使用 Docker Desktop 的好处在于,可以点击容器的 “Status” 下的状态,进入 Status 界面查看容器详情。并且由几个

 

  Status 界面,有5个标签页面,可以查看容器的具体内容

  Logs :日志界面,显示Nacos 运行日志,加入Nacos没有运行成功,可以在这里看到失败日志。

  Inspect:检查界面,可以看到 Nacos 启动时的环境变量,比如我们传入的启动参数,都可以在这里看到。

  Terminal:终端界面,这里可以使用一些 Linux 系统的操作命令,直接对镜像内部的文件操作。不过 Nacos 镜像自带的命令比较少,用处不大。

  Files:文件界面,展示镜像内部的所有文件,Nacos 的文件目录在 /home/nacos 下面,这里的配置文件是可以直接手动修改保存的,非常方便。

  Status:状态界面,展示镜像的CPU、内存、网络等监控数据。

 

3.2 登录验证

  看我的镜像日志,已经打印了日志:INFO Nacos started successfully in stand alone mode. use external storage

  说明启动成功了,在浏览器内输入登录地址:http://127.0.0.1:8848/nacos   页面正常打开,进入到了登录页面,初始用户名和密码都是 nacos

  登录成功。本次安装顺利完成。

 

 

posted @ 2023-03-09 17:14  闲人鹤  阅读(3381)  评论(2编辑  收藏  举报