• .NET Core 使用docker-compose多容器化应用部署(nginx容器反代理转发web容器)


    Docker Compose让一切更简单

    Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。

    对于需要多个容器(比如需要Nginx、SqlServer、Redis、RabbitMQ等)协调运行的复杂应用中,Docker体贴的为我们想到了这一点。借助Compose模块,我们可以编写一个docker-compose.yml文件,使用声明性语法启动一系列相互连接的容器,即可一步完成上面的任务。

    2、安装Docker Compose

    $ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    $ sudo chmod +x /usr/local/bin/docker-compose
    $ docker-compose --version
    docker-compose version 1.18.0, build 1719ceb

    3、编写docker-compose.yml

    version: '3'
    services:
        dotnetapi:
            container_name: dotnetapicontains
            build: .
    
        reverse-proxy:
            container_name: reverse-proxy
            image: nginx
            ports:
             - "5002:5002"
            volumes:
             - ./proxy.conf:/etc/nginx/conf.d/default.conf

    简单介绍下上面的配置文件,其中定义了两个服务:一个是dotnetapi,即以我们当前项目目录来构建镜像并启动一个叫dotnetapicontains的容器。一个是reverse-proxy,用来使用nginx镜像进行反向代理,其中又通过指定volumes来使用挂载的方式进行配置。

    $ touch proxy.conf
    $ vim proxy.conf
    server {
        listen 5002;
    
        location / {
          proxy_pass http://dotnetapi:5002;
        }
    }

    其中要注意反向代理的配置:proxy_pass http://dotnetapi:5002;,其中ip部分直接指定的是docker-compose.yml中定义的第一个服务的名称dotnetapi
    下面我们就来启动Compose:

    docker-compose up -d

    执行docker-compose ps验证启动的服务

     使用 curl http://localhost:5002 验证Nginx反向代理,验证成功之后就可以在浏览器通过 http://ip:5002 访问web项目了。

    我们同时也发现通过 docker-compose 正确的创建了两个容器 dotnetapicontains 和 reverse-proxy 。

     

  • 相关阅读:
    IM设计思考:XMPP多用户文本聊天协议(MUC:Multi User Chat)
    软件设计中的“三视图”
    [C++] 应该如何应对OOM?
    Android 上Camera分析
    android的语言切换应用程序 根据 不同的语言 加载不同的 res
    布局
    布局
    如何解决"Launching New_configuration"问题
    android的语言切换应用程序 根据 不同的语言 加载不同的 res
    如何解决"Launching New_configuration"问题
  • 原文地址:https://www.cnblogs.com/ZhengHengWU/p/12855311.html
Copyright © 2020-2023  润新知