在docker-compose的extra_hosts选项中解析容器名称

编程之家收集整理的这篇文章主要介绍了在docker-compose的extra_hosts选项中解析容器名称 编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

搜索热词

我需要从另一个容器中卷曲我的API.
容器1称为Nginx
容器2称为fpm

我需要能够扑向FPM容器并卷曲Nginx容器.

配置:

services:

  Nginx:
    build:
      context: .
      dockerfile: ./docker/Nginx/Dockerfile
    volumes:
      - ./docker/Nginx/conf/dev/api.conf:/etc/Nginx/conf.d/default.conf
    ports:
      - 8080:80
    links:
      - fpm


  fpm:
    build:
      context: .
      dockerfile: ./docker/fpm/Dockerfile
    volumes:
      - .:/var/www/html
      - ./docker/fpm/conf/dev/xdebug.ini:/usr/local/etc/PHP/conf.d/xdebug.ini
      - ./docker/fpm/conf/dev/api.ini:/usr/local/etc/PHP/conf.d/api.ini
    env_file:
      - ./docker/MysqL/MysqL.env
      - ./docker/fpm/conf/dev/fpm.env
    links:
      - MysqL
    shm_size: 256M
    extra_hosts:
      - myapi.docker:Nginx

我最初的想法是将它放在extra_hosts选项中,例如:

extra_hosts:
  - myapi.docker:Nginx

但是docker-compose up失败了:

ERROR: for apiwip_fpm_1 Cannot create container for service fpm: invalid IP address in add-host: “Nginx

我已经看到了一些使用docker网络配置的人的例子,但是仅仅解析地址似乎是最重要的.

我如何解析/评估容器的IP地址,而不是直接通过容器传递它?

最佳答案
    services:

      Nginx:
        build:
          context: .
          dockerfile: ./docker/Nginx/Dockerfile
        volumes:
          - ./docker/Nginx/conf/dev/api.conf:/etc/Nginx/conf.d/default.conf
        ports:
          - 8080:80
        networks:
          my_network:
            aliases:
              - myapi.docker
              - docker_my_network

      fpm:
        build:
          context: .
          dockerfile: ./docker/fpm/Dockerfile
        volumes:
          - .:/var/www/html
          - ./docker/fpm/conf/dev/xdebug.ini:/usr/local/etc/PHP/conf.d/xdebug.ini
          - ./docker/fpm/conf/dev/api.ini:/usr/local/etc/PHP/conf.d/api.ini
        env_file:
          - ./docker/MysqL/MysqL.env
          - ./docker/fpm/conf/dev/fpm.env
        links:
          - MysqL
        shm_size: 256M
        extra_hosts:
          - myapi.docker:Nginx
        networks:
          - my_network

      networks:
        my_network:
          driver: bridge

>添加自定义网络并将容器添加到该网络
>默认情况下,如果从fpm卷曲Nginx容器,则将卷曲localhost,因此我们需要添加别名,使其与Nginx配置中的服务器名称相同
>使用此解决方案,您可以从fpm容器中卷曲myapi.docker

@edward让我知道此解决方案是否对您有用

总结

以上是编程之家为你收集整理的在docker-compose的extra_hosts选项中解析容器名称 全部内容,希望文章能够帮你解决在docker-compose的extra_hosts选项中解析容器名称 所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群:1065694478(已满)
编程之家官方2群:163560250(已满)
编程之家官方3群:312128206(已满)
编程之家官方4群:230427597

相关文章

猜你在找的Docker相关文章

启动一个简单的web 应用 使用社区提供的模板,启动一个简单的web应用,熟悉下各种Docker命令的使用: [plain] view plain copy # docker ru
作者:杨冬 欢迎转载,也请保留这段声明。谢谢! 出处: https://andyyoung01.github.io/ 或 http://andyyoung01.16mb.com/ 本篇文章主要探索Do
Network containers Estimated reading time: 5 minutes If you are working your way through the user gu
Kubernetes(k8s)是自动化容器操作的开源平台,基于这个平台,你可以进行容器部署,资源调度和集群扩容等操作。如果你曾经用过Docker部署容器,那么可以将Docker看成Kubernetes
在本文中,我们将介绍如何将 Blazor 应用程序放入Jexus 容器以进行开发和部署。我们将使用 .NET Core CLI,因此无论平台如何,使用的命令都将是相同的。 Blazor 托管模型 Bl
在编写Dockerfile构建docker镜像时,常遇到以下问题: 为了解决上述问题,从17.05版本开始Docker在构建镜像时增加了新特性:多阶段构建(multi-stage builds),将构
调查背景 Kubernetes 越来越多地在生产环境中使用,围绕 Kubernetes 的整个生态系统在不断演进,新的工具和解决方案也在持续发布。云原生计算的发展驱动着各个企业转向遵循云原生原则(启动
使用Vs2017 编译 eShopOnContainers-ServicesAndWebApps 时,报了错误: Microsoft.DotNet.Docker.CommandLineClientEx