Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker无法对Localhost运行CURL或WGET命令_Docker_Curl_Docker Compose - Fatal编程技术网

Docker无法对Localhost运行CURL或WGET命令

Docker无法对Localhost运行CURL或WGET命令,docker,curl,docker-compose,Docker,Curl,Docker Compose,我在尝试使用CURL命令进行PHPUnit测试时发现了一个问题。我总是得到: Connecting to `www.example.local` (www.example.local)|127.0.0.1|:80... failed: Connection refused. 然后,我尝试从容器命令行运行wget和curl命令,同样的问题。我让docker这样工作 在我的计算机的/etc/hosts中 127.0.0.1 www.example.local 127.0.0.1 api.examp

我在尝试使用CURL命令进行PHPUnit测试时发现了一个问题。我总是得到:

Connecting to `www.example.local` (www.example.local)|127.0.0.1|:80... failed: Connection refused.
然后,我尝试从容器命令行运行wgetcurl命令,同样的问题。我让docker这样工作

在我的计算机的/etc/hosts中

127.0.0.1 www.example.local
127.0.0.1 api.example.local
以此类推,在我的浏览器中访问网站时,它会起作用。在我的docker-compse.yml中,我有:

version: “3.4”

volumes:
  postgres_database :
     external: false
  mysql_data : {}
  schemas:
    external: false
services:
  php:
    build:
      context : ./
      dockerfile : Dockerfile
      network: host
    volumes:
      - ./:/code
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    depends_on: [ "postgres"]

    ports:
        - "9000:9000"
    expose:
      - "9000"
    container_name: binge_php
  web:
    image: nginx:latest
    build:
      context : ./
      dockerfile : Dockerfile_Nginx
      network: host
    ports:
      - "80:80"
    expose:
      - "0"
    volumes:
      - ./:/code
      - ./site.conf:/etc/nginx/conf.d/site.conf
      - ./nginx_custom_settings.conf:/etc/nginx/conf.d/nginx_custom_settings.conf

    links:
      - php
    depends_on:
      - php
    container_name: binge_nginx

我可能做错了什么,使我无法从PHP容器中运行curl命令?

在Docker 127.0.0.1中通常表示“此容器”,而不是任何其他容器或主机系统。@DavidMaze但如果我的网络是
network:host
,它不应该与我的主机系统相同吗?主机网络意味着您可以使用
localhost
访问任何其他容器,localhost是指此容器,要访问其他容器,您必须使用容器名称,但我怀疑它在主机网络中可能不起作用,注意:考虑到容器在使用主机模式网络时没有自己的IP地址,端口映射不会生效,-p,-publish,-p和--publish all选项被忽略,而是生成一个警告:警告:使用主机网络模式时,已发布的端口将被丢弃您只是使用主机网络构建容器,而不是运行它们。不过,这通常是一个不必要的解决方法,您根本不需要指定它。请提供一个。提供的撰写文件包含大量对问题中未包含的外部文件的引用。在Docker 127.0.0.1中,通常表示“此容器”,而不是任何其他容器或主机系统。@DavidMaze,但如果我的网络是
network:host
,它不应该与我的主机系统相同吗?主机网络意味着您可以使用
localhost
访问任何其他容器,localhost是指此容器,要访问其他容器,您必须使用容器名称,但我怀疑它在主机网络中可能不起作用,注意:考虑到容器在使用主机模式网络时没有自己的IP地址,端口映射不会生效,-p,-publish,-p和--publish all选项被忽略,而是生成一个警告:警告:使用主机网络模式时,已发布的端口将被丢弃您只是使用主机网络构建容器,而不是运行它们。不过,这通常是一个不必要的解决方法,您根本不需要指定它。请提供一个。所提供的撰写文件包含大量对问题中未包含的外部文件的引用。