• 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 abbitmq: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

  • 相关阅读:
    Xcode代码块快捷输入
    Git常用命令
    vim
    MACOX中apache配置
    IOS中实现动画的几种方式
    Swift与OC混合编译
    网络图像加载
    我对互联网的理解
    运行时
    自动布局使用
  • 原文地址:https://www.cnblogs.com/Zhupeng0929/p/10273540.html
Copyright © 2020-2023  润新知