我花了两天的时间试图弄明白这个问题,我正在运行一个docker容器,它通过一个docker compose文件托管一个django + react网站。
我可以通过端口80(IP:http://52.90.163.11:80),但我似乎无法访问端口8000上的django管理面板(IP应该是http://52.90.163.11:8000,但它不工作)。
我只想通过端口8000访问后端容器。
我有两个Docker合成文件。一个我在本地机器上构建。在本地机器上构建后,我将图像推送到dockerhub。第二个dockerfile驻留在AWS服务器上,并使用第一个构建中的图像。
这是我在本地机器上创建图像的docker-compose文件。
version: '3'
services:
backend:
build:
context: ./backend/src
command: gunicorn djreact.wsgi --bind 0.0.0.0:8000
ports:
- 8000:8000
depends_on:
- pgdb
pgdb:
image: postgres
environment:
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- pgdata:/var/lib/postgresql/data
frontend:
build:
context: ./frontend/gui
volumes:
- react_build:/frontend/build
nginx:
image: nginx:latest
ports:
- 80:8080
volumes:
- ./nginx/nginx_setup.conf:/etc/nginx/conf.d/default.conf:ro
- react_build:/var/www/react
depends_on:
- backend
- frontend
volumes:
react_build:
pgdata:
这是我在AWS服务器上的dockerfile,它使用了在我本地机器上创建的图像。
version: '3'
services:
backend:
image: ansariuminhaj/mynacode:mynacode-backend
command: gunicorn djreact.wsgi --bind 0.0.0.0:8000
ports:
- 8000:8000
depends_on:
- pgdb
pgdb:
image: ansariuminhaj/mynacode:postgres
environment:
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- pgdata:/var/lib/postgresql/data
frontend:
image: ansariuminhaj/mynacode:mynacode-frontend
volumes:
- react_build:/frontend/build
nginx:
image: ansariuminhaj/mynacode:nginx
ports:
- 80:8080
volumes:
- ./nginx/nginx_setup.conf:/etc/nginx/conf.d/default.conf:ro
- react_build:/var/www/react
depends_on:
- backend
- frontend
volumes:
react_build:
pgdata:
下面是我的nginx配置文件:
upstream api {
server backend:8000;
}
server {
listen 8080;
server_name 52.90.163.11;
location / {
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
root /var/www/react;
try_files $uri /index.html;
}
location /api/ {
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
proxy_pass http://api;
proxy_set_header Host $http_host;
}
}
docker ps在我的AWS服务器上显示了这个。
容器ID图像命令创建状态端口名称
10分钟前已上传9分钟80/tcp,0. 0. 0. 0:80-〉8080/tcp,浏览器:::80-〉8080/tcp密码:::80-〉8080/tcp密码:::80-〉8080/tcp密码
10分钟前上传到9分钟前0. 0. 0. 0:8000-〉8000/tcp,浏览器:::8000-〉8000/tcp密码:::8000/tcp密码后台_1
5eebbbcae314安萨里乌明哈吉/mynacode:postgres " Docker -入口点. s ..." 9分钟前上了9分钟5432/tcp mynacode_pgdb_1
我尝试创建一个新的AWS示例,Docker系统修剪并重新创建映像/卷,但问题仍然存在。
1条答案
按热度按时间g6ll5ycj1#
所以我找到了解决方案!Docker文件是正确的。我必须登录亚马逊示例并启用端口8000,以便它接受该端口上的请求!