CentOS下利用Docker部署Surging
1. 安裝Centos, 配置固定ip
配置文件地址vi /etc/sysconfig/network-scripts/ifcfg-ens33
```
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.0.101
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=d197ec13-2ec7-42a6-8899-2bd0bacfc2ca
DEVICE=ens33
ONBOOT=yes
ZONE=public
```
備註:配置防火墻
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
2. 安裝Docker(自己網上找)
```
# 定義安裝版本
export docker_version=17.03.2
# step 1: 安裝必要的一些系統工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common bash-completion
# Step 2: 更新並安裝 Docker-CE
sudo apt-get -y update
version=$(apt-cache madison docker-ce|grep ${docker_version}|awk ‘{print $3}‘)
# --allow-downgrades 允許降級安裝
sudo apt-get -y install docker-ce=${version} --allow-downgrades
# 設置開機啟動
sudo systemctl enable docker
```
3.安裝Rancher
```
# 下載鏡像
docker pull rancher/server
#運行實例
docker run -d --restart=always -p 8080:8080 rancher/server
```
備註:
1. 添加主機時直接拷貝生成的命令運行即可
2. UI地址http://192.168.0.101:8080
4. 安裝Rabbitmq
```
#下載鏡像
docker pull rabbitmq:management
#運行實例
docker run -d --name rabbitmq --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \rabbitmq:management
```
備註:UI地址http://192.168.0.101:15672
5. 安裝Consul
```
#獲取鏡像
docker pull consul
#運行實例node1的server
docker run -d --name node1 -e ‘CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}‘ consul agent -server -node=node1 -bootstrap-expect=1
#獲取node1的ip
JOIN_IP="$(docker inspect -f ‘{{.NetworkSettings.IPAddress}}‘ node1)"
#運行實例node2的server
docker run -d --name node2 -e ‘CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}‘ consul agent -server -node=node2 -join $JOIN_IP
#運行帶ui的client
docker run -d --name node11 -p 8400:8400 -p 8500:8500 -p 8600:53/udp -e ‘CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}‘ consul agent -ui -node=node11 -client=0.0.0.0 -join $JOIN_IP
#查看節點
docker exec node1 consul members
```
備註:
1.運行帶UI命令時如果報錯就先刪除運行的容器node11,然後重新啟動系統後再運行命令
2.UI地址http://192.168.0.101:8500
6.安裝dotnetcore 2.1 runtime
```
docker pull microsoft/dotnet:2.1-runtime
#此命令會進入容器內,Ctrl+P+Q 退出
docker run -it microsoft/dotnet:2.1-runtime
#
```
7.獲取Surging源碼,發布服務代碼並上傳
```
#發布代碼
dotnet publish -r centos.7-x64 -c release
#創建鏡像
docker build -t surgingserver .
#運行服務
docker run --name surgingserver --env Mapping_ip=192.168.0.101 --env Mapping_Port=98 --env RootPath=/webapps/surgingserver/publish --env Register_Conn=192.168.0.101:8500 --env EventBusConnection=172.17.0.4 --env Surging_Server_IP=0.0.0.0 -v /webapps/surgingserver/publish:/webapps/surgingserver/publish -it -p 98:98 surgingserver
```
備註:
ip換成自己系統對應的ip
RootPath為上傳的代碼路徑
EventBusConnection為MQ的docker分配的ip,可以再Rancher看到
8.發布網關代碼
```
#發布代碼
dotnet publish -r centos.7-x64 -c release
#創建實例
docker build -t surgingapi .
#運行網關容器
docker run --name surgingapi -it -p 729:729 --env Register_Conn=192.168.0.101:8500 surgingapi
```
備註:
1. 網關地址http://192.168.0.101:729
CentOS下利用Docker部署Surging