从Docker容器运行Docker

从Docker容器运行Docker,docker,networking,docker-compose,docker-machine,Docker,Networking,Docker Compose,Docker Machine,为我的论文做一个项目,涉及一个角度前端,它与一个节点API后端对话,该后端需要使用docker从图像创建容器,为控制台输出运行几行代码 我使用docker compose为我的前端和后端创建了两个docker容器 我的后端(api)容器需要一种使用连接docker的方法,我不知道如何做到这一点 version: "3" services: app: build: ./frontend ports: - "3001:4200" volumes:

为我的论文做一个项目,涉及一个角度前端,它与一个节点API后端对话,该后端需要使用docker从图像创建容器,为控制台输出运行几行代码

我使用docker compose为我的前端和后端创建了两个docker容器

我的后端(api)容器需要一种使用连接docker的方法,我不知道如何做到这一点

version: "3"
services:
  app:
    build: ./frontend
    ports:
      - "3001:4200"
    volumes:
      - ./frontend:/code
    depends_on:
      - api
  api:
    build: ./backend
    ports:
      - "3000:8080"
    volumes:
      - ./backend:/code
我试过:

1在我的主机(windows 10)上使用docker机器,但每当我尝试通过“ReferenceError:docker未定义”从docker容器(后端)连接时,我不确定docker机器是否在我的主机上正确运行,因为我在windows 10上使用hyper-v

const docker = new Docker({host: 'http://192.168.0.23', port: 3000});
2将docker安装到docker容器中,该容器每次都失败,成功安装后将无法识别系统上正在运行的“docker”

3将docker图像添加到docker compose文件中,正如我所认为的那样,可以吗?对我来说,不,但不知道这是否是因为网络不是docker图像的预期用途

  docker:
   image: docker
   ports: 
    - "2376:2376"
   stdin_open: true
   tty: true
   volumes:
    - /var/run/docker.sock:/var/run/docker.sock
我是docker的新手,尤其是在网络方面,我一直在研究docker machine、docker swarm和Kubernetes,以找到最佳解决方案


如果能深入了解这一点,我们将不胜感激,因为这个项目的最大障碍是让我的后端API在部署的环境中与docker进行对话。

我不知道这是否适用于所有人,但将dind添加到我的项目中可以满足我的需要

docker-in-docker:
  image: docker:dind
  environment:
    DOCKER_TLS_CERTDIR: ""
  privileged: true
  volumes:
    - /var/lib/docker
  expose:
    - 2375
    - 2376
对于docker compose中连接到“docker中的docker”的任何容器,都需要在其服务中使用此功能。“DOCKER\u TLS\u CERTDIR”用于删除TLS

  links:
    - docker-in-docker
  environment:
    DOCKER_HOST: http://docker-in-docker:2375
    DOCKER_TLS_CERTDIR: ""

对于任何使用DockerRode的人来说,当在我的本地使用async&Wait时,我会注意到docker是未定义的,但一旦将其移动到docker环境中,可以通过使用来修复。然后改为。

您的问题不清楚,但我想您需要
docker:dind
图像。关于这个问题我能澄清些什么吗?我尝试将dind图像添加到我的docker composer中,但仍然得到“docker未定义”。我将其添加为“docker”公开的端口2376,并尝试使用docker({host:'',端口:2376})从我的API进行连接;你说不能和Docker联系是什么意思?您是否正在尝试从另一个容器中运行前端和后端图像?iv更新了我的问题,包括我的docker-compose.yml和上面的更多细节。简而言之,我想用docker将我的后端容器连接到docker。