系统环境
- MacOs: 10.15.5
- Docker: Docker version 19.03.12
- Docker-compose: docker-compose version 1.26.2
安装过程
1.docker mysql8准备
由于官方使用的docker-compose是把nacos和mysql编排在一起,我们实际在本地开发环境的配置中,不可能为每一个新的容器都配套一个mysql,所以这里先准备一个本地的MySQL即可。我使用的是docker-compose安装的mysql8.0,具体配置如下:
version: "3"
services:
db:
image: mysql:8.0
container_name: mysql8
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: *****
MYSQL_DATABASE: ****
MYSQL_USER: ****
MYSQL_PASSWORD: *****
command:
--max_connections=1000
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--default-authentication-plugin=mysql_native_password
ports:
- 53306:3306
volumes:
- ./data:/var/lib/mysql
- ./conf:/etc/mysql/conf.d
#- /etc/timezone:/etc/timezone
#- /etc/localtime:/etc/localtime
创建完MySQL后,新建一个database为“nacos”,从链接https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql获取nacos的数据库初始文件。生成新的库表备用。
2.docker network准备
由于nacos配置的持久化可以选择MySQL方案,又因为在我本地两者都是以docker容器的方式存在,所以需要配置好内部链接的网桥,这里可以为nacos配置使用装好的mysql网桥。
#命令行查询
> docker inspect mysql8
"Networks": {
"mysql80_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"db",
"fa2f604577ef"
],
"NetworkID": "******************************",
"EndpointID": "****************************",
"Gateway": "172.20.0.1",
"IPAddress": "172.20.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "*****************",
"DriverOpts": null
}
}
这里得到MySQL的Networks为mysql80_default;IPAddress为“172.20.0.2”。先记录下,后续配置nacos的时候会用到。
3.nacos安装
目前nacos的最新版是1.3.1,先从nacos的官方拉取最新的配置项目
#命令行执行
> git clone https://github.com/nacos-group/nacos-docker.git
修改配置文件适配我们的本地环境path: nacos-docker/example/standalone-mysql-8.yaml
version: "3"
services:
nacos:
image: nacos/nacos-server:1.3.1
container_name: nacos-standalone-mysql
env_file:
- ../env/nacos-standlone-mysql.env
volumes:
- ./standalone-logs/:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8848:8848"
- "9555:9555"
restart: always
#配置和mysql容器互通的网络net-docker
networks:
default:
external:
name: mysql80_default
修改nacos-docker目录下对应的MySQL的配置文件path/env/nacos-standlone-mysql.env
PREFER_HOST_MODE=hostname
MODE=standalone
#此处配置nacos的持久化方式为mysql
SPRING_DATASOURCE_PLATFORM=mysql
#这处使用上面查询到的mysql在容器内部ip地址
MYSQL_SERVICE_HOST=172.20.0.2
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=****
MYSQL_SERVICE_PASSWORD=*****
在standalone-mysql-8.yaml 文件的同级目录下,使用docker-compose命令创建容器
>docker-compose -f standalone-mysql-8.yaml up -d
浏览器查看nacos是否创建成功
http://localhost:8848/nacos/
登录名和密码都是nacos
尝试新增一个配置,并去数据库的config_info查看是否保存成功。
至此nacos的安装完成。