我需要从另一个容器中 curl 我的API。
容器1称为nginx
容器2称为fpm

我需要能够扑向FPM容器并 curl 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地址,而不是直接通过容器传递它?

请您参考如下方法:

在默认网络中添加网络别名

version: "3.7" 
services: 
 
  nginx: 
    # ... 
    networks: 
      default: 
        aliases: 
          - example.local 
 
  browser-sync: 
    # ... 
    depends_on: 
      - nginx 
    command: "browser-sync start --proxy http://example.local" 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!