如何将基于Docker Compose的Django网站部署到本地家庭网络?
Django站点本地网络部署配置指南
一、现有配置
1. docker-compose.yml
# Mentioning which format of dockerfile version: "3.9" # services or nicknamed the container services: # web service for the web web: # you should use the --build flag for every node package added build: . # Add additional commands for webpack to 'watch for changes and bundle it to production' command: python manage.py runserver 0.0.0.0:8000 volumes: - type: bind source: . target: /code ports: - "8000:8000" depends_on: - db environment: - "DJANGO_SECRET_KEY=django-insecure-m#x2vcrd_2un!9b4la%^)ou&hcib&nc9fvqn0s23z%i1e5))6&" - "DJANGO_DEBUG=True" expose: - 8000 db: image: postgres:13 # volumes: - postgres_data:/var/lib/postgresql/data/ # unsure of what this environment means. environment: - "POSTGRES_HOST_AUTH_METHOD=trust" # - "POSTGRES_USER=postgres" # Volumes set up volumes: postgres_data:
2. Django settings.py 相关配置
ALLOWED_HOSTS = ['0.0.0.0', 'localhost', '127.0.0.1'] #127.0.0.1 is my localhost address.
二、本地网络部署调整步骤
已知主机IP为192.168.0.214,按以下步骤修改即可实现本地局域网访问:
- 修改Django的ALLOWED_HOSTS:将主机IP添加到列表中,修改后如下:
这一步是让Django允许来自该主机IP的请求访问站点。ALLOWED_HOSTS = ['0.0.0.0', 'localhost', '127.0.0.1', '192.168.0.214'] - 重启Docker服务:执行命令
docker-compose up --build重新构建并启动服务,确保配置生效。 - 测试访问:在本地局域网内的其他设备上,打开浏览器访问
http://192.168.0.214:8000即可访问站点。
三、路由器设置说明
如果仅需要本地局域网内访问,不需要在路由器上做任何设置。只有当你需要让外网(互联网)设备访问该站点时,才需要在路由器上配置端口转发,将路由器的8000端口映射到主机192.168.0.214的8000端口。
四、网络知识学习建议
要理解这类部署问题,可重点学习以下知识点:
- 局域网IP地址的分配规则与设备识别逻辑
- Docker端口映射的原理(主机端口与容器端口的关联机制)
- Django中
ALLOWED_HOSTS的作用及安全配置逻辑 - TCP/IP端口的基本概念与常见应用场景
内容的提问来源于stack exchange,提问作者Savakar Rohan
相关产品推荐
相关产品推荐

