gpt4 book ai didi

docker - 为什么我无法连接到Windows 10上的本地docker-compose容器?

转载 作者:行者123 更新时间:2023-12-01 15:40:34 27 4
gpt4 key购买 nike

我正在尝试对Python应用程序进行泊坞化,为此我一直关注this tutorial。该教程始于2015年4月,仍然使用Docker Machine,从this answer来看,不再需要在Windows上本地运行Docker容器。

之前,我已经将它与Docker Machine一起使用,并且能够查看Web应用程序并与其进行交互。但是现在我正在尝试在没有Docker Machine的情况下使用Windows 10上的Docker版本17.06.0-ce,版本02c1d87使其工作。

这是docker-compose.yml:

web:
restart: always
build: ./web
expose:
- "8000"
links:
- postgres:postgres
volumes:
- /usr/src/app/static
env_file: .env
command: /usr/local/bin/gunicorn -w 2 -b :8000 app:app

nginx:
restart: always
build: ./nginx/
ports:
- "80:80"
volumes:
- /www/static
volumes_from:
- web
links:
- web:web

data:
image: postgres:latest
volumes:
- /var/lib/postgresql
command: "true"

postgres:
restart: always
image: postgres:latest
volumes_from:
- data
ports:
- "5432:5432"

我启动了容器:
$ docker-compose up -d
Creating polly_data_1 ...
Creating polly_data_1 ... done
Creating polly_postgres_1 ...
Creating polly_postgres_1 ... done
Creating polly_web_1 ...
Creating polly_web_1 ... done
Creating polly_nginx_1 ...
Creating polly_nginx_1 ... done

然后,当我运行 docker ps时,它将显示以下三个正在运行的容器:
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
9b2c1048f3a5 polly_nginx "/usr/sbin/nginx" 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp polly_nginx_1
d561ac5b901a polly_web "/usr/local/bin/gu..." 5 seconds ago Up 4 seconds 8000/tcp polly_web_1
ecb029d6ec3a postgres:latest "docker-entrypoint..." 7 seconds ago Up 5 seconds 0.0.0.0:5432->5432/tcp polly_postgres_1

(目前,在Chrome中导航到 http://localhost:8000/已经产生了 ERR_CONNECTION_REFUSED。)

然后,按照教程运行脚本来设置数据库(额外 //,因为我在Windows 10上使用Git Bash):
$ docker-compose run web ///usr/local/bin/python create_db.py
Starting polly_data_1 ...
Starting polly_data_1 ... done
Starting polly_postgres_1 ... done

现在,当我运行 docker ps时,它显示了以下四个正在运行的容器:
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS                    NAMES
a129c12f5982 polly_web "//usr/local/bin/p..." 5 seconds ago Up Less than a second 8000/tcp polly_web_run_1
9b2c1048f3a5 polly_nginx "/usr/sbin/nginx" 16 seconds ago Up 15 seconds 0.0.0.0:80->80/tcp polly_nginx_1
d561ac5b901a polly_web "/usr/local/bin/gu..." 17 seconds ago Up 16 seconds 8000/tcp polly_web_1
ecb029d6ec3a postgres:latest "docker-entrypoint..." 19 seconds ago Up 17 seconds 0.0.0.0:5432->5432/tcp polly_postgres_1

而且 localhost:8000仍然拒绝连接。 Web容器公开了端口8000,所以我不明白为什么我无法连接到它。

我如何才能正常工作,以便可以本地访问 web容器中的Web应用程序?

最佳答案

只是改变:

expose:
- "8000"

通过
ports:
- "8000:8000"

顺便说一句 http://localhost:80无法正常工作吗?

问候

关于docker - 为什么我无法连接到Windows 10上的本地docker-compose容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45124711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com