Docker composer搭建Spring Cloud Alibaba 運行環境(二)
- 2020 年 10 月 29 日
- 筆記
- Docker Compose, springcloud 微服務
「 Spring Cloud Alibaba要用到的組件很多,註冊中心nacos, 限流sentinel, 資料庫,網關等等。由於用到的組件相對較多,部署會很繁瑣,最關鍵的是沒有資源伺服器,所以在開發過程中我會逐漸將一些組件使用docker-compose部署。」
01
—
環境準備
我手上有一台macbook,這次先用mac部署,有機會再寫一個ubuntu的,基本差不多。
先曬出mackbook資訊,不是高配,硬體配置和這差不多的應該都沒問題。
第一部安裝docker-toolbox, 阿里雲上有個鏡像。
//mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/stable/
下載,安裝。
安裝好以後配置一下硬體資訊:
這個時候可以試一下,是否安裝好了,terminal試一下docker version:
➜ ~ docker version
Client: Docker Engine – Community
Cloud integration 0.1.18
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 16:58:31 2020
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine – Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:07:04 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
docker-compose version:
➜ ~ docker-compose -version
docker-compose version 1.27.4, build 40524192
正常情況下,我們的環境就全部準備好了,是不是很簡單。
當然我們中國的環境(肉身翻牆或者有高速梯子跳過這步)是需要配置一個中國的docker加速器,中國的網速去docker hub下載鏡像那得涼涼了。
配置阿里雲加速方法如下:
首先申請自己的阿里雲私有鏡像:
1.登陸阿里云://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
2.進入【控制台】-【鏡像倉庫】-【鏡像中心】-【鏡像加速器】
如果找不到菜單就直接搜【鏡像倉庫】會要求輸入密碼,輸入即可,然後進入【鏡像中心】-【鏡像加速器】
獲得自己的加速地址後:
{
“features”: {
“buildkit”: true
},
“experimental”: false,
“registry-mirrors”: [
“//xxxxxx.mirror.aliyuncs.com”
]
}
重啟服務。
用docker info命令查看是否配置成功,看下你的加速地址表示成功:
Registry Mirrors:
//xxx.mirror.aliyuncs.com/
Live Restore Enabled: false
Docker toolbox安裝成功!!
02
—
docker-compse部署Mysql
創建docker文件夾,用於存放相應文件資訊,創建docker-compose.yml文件。文件目錄如下:
-rw-r–r– 1 xx staff 1.1K 10 27 22:00 docker-compose.yml
drwxr-xr-x 3 xx staff 96B 10 20 15:22 mysql
編寫docker-compose.yml文件如下:
version: “3”
services:
mysql:
container_name: mysql
image: mysql:5.7
environment:
– MYSQL_ROOT_PASSWORD=123456
volumes:
– /Users/xxxx/docker/mysql/data:/var/lib/mysql
ports:
– “3306:3306”
restart: always
啟動mysql鏡像,輸入命令:docker-compose up -d mysql, 運行如下:
➜ docker docker-compose up -d mysql
Creating network “docker_default” with the default driver
Pulling mysql (mysql:5.7)…
5.7: Pulling from library/mysql
bb79b6b2107f: Pull complete
49e22f6fb9f7: Pull complete
842b1255668c: Pull complete
9f48d1f43000: Pull complete
c693f0615bce: Pull complete
8a621b9dbed2: Pull complete
0807d32aef13: Pull complete
6d2fc69dfa35: Pull complete
56153548dd2c: Extracting [=======================================> ] 84.67MB/108.3MB
用docker-compose ps -a 命令查看是否啟動成功,看到如下資訊說明成功:
➜ docker docker-compose ps -a
Name Command State Ports
—————————————————————————————————-
mysql docker-entrypoint.sh mysqld Up
0.0.0.0:3306->3306/tcp, 33060/tcp
Mysql安裝成功!!
03
—
docker-compse部署Nacos
去github把nacos 的SQL文件下載下來,導入資料庫中。
//raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/nacos-mysql.sql
用工具導到我們剛搭建好的mysql中:(用本機ip, root/123456, 埠3306)
在docker-compse.yml的後面中加入以下配置:
nacos:
image: nacos/nacos-server:1.1.4
container_name: nacos
environment:
– PREFER_HOST_MODE=hostname
– MODE=standalone
– MYSQL_DATABASE_NUM=1
– SPRING_DATASOURCE_PLATFORM=mysql
– MYSQL_MASTER_SERVICE_HOST=mysql
– MYSQL_MASTER_SERVICE_DB_NAME=nacos
– MYSQL_MASTER_SERVICE_PORT=3306
– MYSQL_MASTER_SERVICE_USER=root
– MYSQL_MASTER_SERVICE_PASSWORD=123456
volumes:
– /Users/xxx/docker/nacos/logs:/home/nacos/logs
ports:
– “8848:8848”
depends_on:
– mysql
restart: always
寫好了注意在相應的volumes創建好相應的文件夾
docker-compose up -d nacos
啟動nacos
啟動完成後通過 //yourip:8848/nacos/#/login 用nacos/nacos登陸
Nacos安裝成功!!
04
—
docker-compse部署sentinel
在docker-compse.yml的後面中加入以下配置:
sentinel:
image: bladex/sentinel-dashboard:latest
container_name: sentinel
ports:
– “8858:8858”
restart: always
運行命令:
➜ docker docker-compose up -d sentinel
啟動成功後,//yourip:8858/ 用戶名密碼sentinel/sentinel登陸
Sentinel安裝成功, 至此前期所需要的組件都安裝成功, 萬里長征邁出第一步,下期我們繼續。