系統(tǒng)環(huán)境
- MacOs: 10.15.5
- Docker: Docker version 19.03.12
- Docker-compose: docker-compose version 1.26.2
安裝過程
1.docker mysql8準(zhǔn)備
? 由于官方使用的docker-compose是把nacos和mysql編排在一起湾蔓,我們實(shí)際在本地開發(fā)環(huán)境的配置中,不可能為每一個(gè)新的容器都配套一個(gè)mysql杖虾,所以這里先準(zhǔn)備一個(gè)本地的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
? 創(chuàng)建完MySQL后贷祈,新建一個(gè)database為“nacos”,從鏈接https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql獲取nacos的數(shù)據(jù)庫初始文件键科。生成新的庫表備用嗦嗡。
2.docker network準(zhǔn)備
? 由于nacos配置的持久化可以選擇MySQL方案,又因?yàn)樵谖冶镜貎烧叨际且詃ocker容器的方式存在矮冬,所以需要配置好內(nèi)部鏈接的網(wǎng)橋窑滞,這里可以為nacos配置使用裝好的mysql網(wǎng)橋。
#命令行查詢
> 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”妈候。先記錄下赶站,后續(xù)配置nacos的時(shí)候會(huì)用到贝椿。
3.nacos安裝
? 目前nacos的最新版是1.3.1,先從nacos的官方拉取最新的配置項(xiàng)目
#命令行執(zhí)行
> git clone https://github.com/nacos-group/nacos-docker.git
修改配置文件適配我們的本地環(huán)境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容器互通的網(wǎng)絡(luò)net-docker
networks:
default:
external:
name: mysql80_default
修改nacos-docker目錄下對(duì)應(yīng)的MySQL的配置文件path/env/nacos-standlone-mysql.env
PREFER_HOST_MODE=hostname
MODE=standalone
#此處配置nacos的持久化方式為mysql
SPRING_DATASOURCE_PLATFORM=mysql
#這處使用上面查詢到的mysql在容器內(nèi)部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 文件的同級(jí)目錄下,使用docker-compose命令創(chuàng)建容器
>docker-compose -f standalone-mysql-8.yaml up -d
瀏覽器查看nacos是否創(chuàng)建成功
http://localhost:8848/nacos/
登錄名和密碼都是nacos
嘗試新增一個(gè)配置,并去數(shù)據(jù)庫的config_info查看是否保存成功。
至此nacos的安裝完成锣杂。