.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 。

 

原文地址:https://www.cnblogs.com/ZhengHengWU/p/12855311.html