Docker使用docker compose创建Nginx代理其他Docker容器;指定Docker网络并固定容器内部IP地址;实现在同一个Docker网络下容器之间的互相通信

实现Nginx容器内部代理其他容器,我们以Nginx代理Tomcat为例

第一步:创建Docker网络

网络名称指定为:my_net
网段指定为:172.30.1.xxx
网关指定为:172.30.1.1

docker network create --driver bridge --subnet 172.30.1.0/24 --gateway 172.30.1.1 my_net

第二步:在docker compose中添加网络

services同级指定:

networks:
  my_net:
    external: true

容器下指定:

    networks:
      my_net:
          ipv4_address: 172.30.1.xxx

第三步:创建 docker compose 以及nginx.conf
Tomcat:
version: "3"
services:
  tomcat:
    image: tomcat:9.0
    container_name: tomcat
    stdin_open: true
    tty: true
    restart: always
    privileged: true
    networks:
      my_net:
          ipv4_address: 172.30.1.8
networks:
  my_net:
    external: true

由于是单纯作为演示,tomcat就不做过多的配置了
值得注意的是,我们的tomcat容器的内部并没有做端口的映射,只是指定了IP地址为:172.30.1.8


Nginx:
version: "3"
services:
  nginx:
    image: nginx
    container_name: nginx
    stdin_open: true
    tty: true
    restart: always
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    privileged: true
    networks:
      my_net:
          ipv4_address: 172.30.1.3
networks:
  my_net:
    external: true

nginx.conf:

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 50m;

        server{
                listen       80;
                server_name  com.wind;

                location / {
                proxy_pass http://172.30.1.8:8080/;
                }
        }
}

在nginx容器中,我们映射了80端口
172.30.1.8是我们tomcat容器内部的IP,所以配置文件中,我们把80端口映射到这个地址:http://172.30.1.8:8080/
当然,我们也可以使用容器的名称:http://tomcat:8080/


第四步:防火墙设置

我们把tomcat的8080端口关闭,把Nginx的80端口打开

firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
第五步:测试

浏览器中输入:http://IP地址:80/index.html
看到这个结果就表示,我们nginx在内部已经通过Docker的网络访问到了Tomcat容器,已经完成了容器之间的通讯

在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows 10下安装Docker,可以通过Docker Desktop实现。首先,我们需要下载并安装Docker Desktop。可以在Docker官网上找到适用于Windows的Docker Desktop安装程序,并按照安装向导进行安装。 安装完成后,打开Docker Desktop应用。在系统托盘中找到Docker图标,右击并选择"Settings"进入设置界面。 在设置界面中,选择"General"选项卡,确保"Start Docker Desktop when you log in"选项被勾选,然后点击"Apply & Restart"按钮,使设置生效。 Docker Desktop启动后,在系统托盘中会显示Docker的状态。可以通过左击图标来打开Docker的命令行工具。 通过Docker命令行工具,可以进行容器的管理和操作。可以使用"docker run"命令来创建和运行一个容器。例如,可以使用下面的命令运行一个Nginx容器docker run -d -p 80:80 nginx 上述命令会从Docker Hub下载Nginx镜像,并在容器中运行Nginx服务。"-d"参数表示在后台运行容器,"-p 80:80"参数表示将容器的80端口映射到宿主机的80端口。 运行容器后,可以使用"docker ps"命令来查看所有正在运行的容器。可以使用"docker stop"命令来停止运行的容器。 除了命令行工具,Docker Desktop还提供了可视化界面,可以通过在浏览器中访问"http://localhost"来打开。在可视化界面中,可以查看和管理容器、镜像、网络等。 搭建一个Docker的应用栈,可以将多个容器组合在一起,形成一个完整的应用系统。例如,可以使用Docker Compose来定义和管理应用栈中的多个服务。可以使用一个YAML文件来定义应用栈的结构和配置。 在定义好应用栈后,可以使用"docker-compose up"命令来启动应用栈中的所有服务。可以使用"docker-compose ps"命令来查看应用栈中所有服务的运行状态。 通过以上步骤,可以在Windows 10下安装Docker实现容器的操作。通过搭建一个Docker的应用栈,可以将多个容器组合在一起,形成一个完整的应用系统。这样可以实现应用的快速部署和扩展,提高系统的灵活性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值