這篇博客是為了記錄一下部署步驟。
因為實訓需要,我要在服務器上用docker部署我們小組的微服務項目。我們的微服務有Gateway,User,Scene,Device四個部分,分別占用不同的端口,其中Gateway向小程序前端提供https服務,其他三個提供http服務(服務之間的通信)。
四個服務都直接訪問docker宿主機的一個容器中mysql,該mysql設置了端口映射。
Docker容器之間的通信有三種方法,我采用user-defined網絡,自定義各個服務的ip,互相之間通過ip通信。
首先創建一個user-defined網絡:
sudo docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net2
subnet指定了子網的網段,gateway指定了子網網關
go get github.com/go-sql-driver/mysql
go get github.com/tidwall/gjson
gateway
sudo docker run -it -p 443:443 --name=gateway --network=my_net2 --ip 172.22.16.2 yh
/go-path/src/YouHome_server/services/Proxy
room
sudo docker run -it --name=room --network=my_net2 --ip 172.22.16.3 yh
/go-path/src/YouHome_server/services/Room
devcie
sudo docker run -it --name=device --network=my_net2 --ip 172.22.16.4 yh
/go-path/src/YouHome_server/services/Device
user
sudo docker run -it --name=user --network=my_net2 --ip 172.22.16.5 yh
/go-path/src/YouHome_server/services/User
創建、進入數據庫
sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
sudo docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -P3306 -uroot -proot