Python Can';t从主机到达jupyter docker容器

Python Can';t从主机到达jupyter docker容器,python,docker,docker-compose,jupyter-notebook,Python,Docker,Docker Compose,Jupyter Notebook,我有一个关于这个问题的问题。我正在尝试使用docker compose运行此图像: 组成: jupyter: container_name: jupyter build: context: ./Jupyter dockerfile: Dockerfile ports: - "8888:8888" volumes: - ./scripts:/opt/notebooks/connector network

我有一个关于这个问题的问题。我正在尝试使用docker compose运行此图像:

组成:

  jupyter:
    container_name: jupyter
    build: 
      context: ./Jupyter
      dockerfile: Dockerfile
    ports:
      - "8888:8888"
    volumes:
       - ./scripts:/opt/notebooks/connector
    network_mode: "host"
    command: bash -c "jupyter notebook --notebook-dir=/opt/notebooks --ip=* --port=8888 --no-browser --allow-root"
Dockerfile

FROM jupyter/scipy-notebook
EXPOSE 8888

我用……够不着它。。。。网址。我正在使用windows 10作为主机,并尝试从此docker compose和这些工作中访问其他服务。

构建
部分替换为
图像:jupyter/scipy notebook
。同时删除
network\u mode
command
部分,您的代码就可以工作了。我不知道为什么您的代码没有在这种情况下运行,但我认为它一定与
命令
部分有关,该部分正在替换jupyter映像的默认命令。此外,您不需要创建Dockerfile来添加EXPOSE;您可以直接使用映像。

您不能同时使用主机网络模式和发布端口

docker-run-rm-it-net=host-p80:80 yeasy/simple-web:latest
警告:使用主机网络模式时,将丢弃已发布的端口

第二部分,,
要从容器内部到达主机,请使用
host.docker.internal
dns

感谢您的回复!这里的问题是因为
网络模式:“主机”
如果我删除它,一切都会正常。但我需要有能力从这个容器到达主机。我只知道到达它的方法。所以离开
网络模式:主机
并删除
端口
部分。它们不应一起使用,因为它们可能会相互冲突。我正在尝试从主机访问容器。如果不使用network_mode=host,您将能够将端口发布到主机。如您所知,您的申请将在8888上提供。在容器内部,当您需要在主机上运行服务时,请将端点更改为host.docker.internal,以解决此问题,因为如果我删除它,网络模式为:“主机”-一切正常。但我需要有能力从这个容器到达主机。我只知道到达它的方法。要从容器到达主机,使用主机的IP。根据您的发行版风格,可以使用ifconfig/ipconfig命令检查它。Docker for Mac/Windows提供了一个简写dns来查找Docker计算机的ip:
host.Docker.internal
要验证,在容器内部运行
curl host.Docker.internal