使用php执行docker,然后在命令中使用其他容器

使用php执行docker,然后在命令中使用其他容器,docker,Docker,我正在使用docker for php和另一个用于sql。我还有一个makefile,可以在这个容器的实例中运行命令。这是我用于命令执行的条目,我想使用我拥有的sql容器 command: docker run --rm \ --volume=${PWD}/code:/code \ --volume=${PWD}/json:/json:rw \ --volume=${PWD}/file:/file:rw \ own_php:latest \ tim

我正在使用docker for php和另一个用于sql。我还有一个makefile,可以在这个容器的实例中运行命令。这是我用于命令执行的条目,我想使用我拥有的sql容器

command:
    docker run --rm \
    --volume=${PWD}/code:/code \
    --volume=${PWD}/json:/json:rw \
    --volume=${PWD}/file:/file:rw \
    own_php:latest \
    time php /code/public/index_hex.php ${page}
如果尝试从make文件执行此命令,则会出现以下错误

SQLSTATE[HY000][2002]php_network_getaddresses:getaddrinfo失败: 名称无法解析

这是我项目中的docker compose

version: '3'
services:
  sql:
    image: mariadb
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./init-db:/docker-entrypoint-initdb.d
      - ./.mysql-data:/var/lib/mysql/
  crawler:
    build:
      context: './docker-base'
    depends_on:
      - sql
    volumes:
      - ./json:/json:rw
      - ./file:/file:rw
      - ./code:/code
但是如果我使用docker composer运行容器,并在容器中输入命令,那么命令执行得很好

docker run--rm
可以使用另一个容器?

docker Compose,您必须手动将您的
docker run
容器连接到该网络,以便能够访问其上的其他容器。根据保存撰写文件的目录的名称,网络通常会被命名为
directoryname\u default
,它将显示在
docker network ls
列表中

你应该像这样跑

docker run --rm --net directoryname_default ...