这篇博客是为了记录一下部署步骤。
因为实训需要,我要在服务器上用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