簡體   English   中英

如何訪問在 Docker 容器內運行的 Django 應用程序?

[英]How to access the Django app running inside the Docker container?

我目前正在使用以下命令在 docker 容器內運行我的 django 應用程序

docker-compose run app sh -c "python manage.py runserver"

但我無法使用本地主機 url 訪問應用程序(不使用任何額外的數據庫服務器或 ngnix 或 gunicorn,只需在 docker 內運行 django 開發服務器)。

請讓我知道如何訪問該應用程序

docker-compose run旨在啟動基於docker-compose.yml中的服務作為模板的實用程序容器。 它故意不發布ports:在 Compose 文件中聲明,並且您不需要它來運行主服務。

docker-compose up應該是您啟動服務的首選電話。 只需docker-compose up自行啟動,將同時在前台啟動docker-compose.yml中的所有內容; 您可以添加-d以在后台啟動進程,或添加特定服務名稱docker-compose up app以僅啟動app服務及其依賴項。

python命令本身應該是圖像 Dockerfile 中的主要CMD 您不需要在docker-compose.yml文件中覆蓋它或在命令行中提供它。

典型的 Compose YAML 文件可能如下所示:

version: '3.8'
services:
  app:
    build: .       # from the Dockerfile in the current directory
    ports:
      - 5000:5000  # make localhost:5000 forward to port 5000 in the container

盡管 Compose 支持許多設置,但您不需要提供大部分設置。 Compose 為container_name:hostname:image:networks:提供了合理的默認值; expose:entrypoint:command:通常來自您的 Dockerfile 並且不需要被覆蓋。

嘗試 0.0.0.0:<PORT_NUMBER>(通常為 80 或 8000),如果您仍然無法連接服務器,您應該使用 Docker 機器 IP 而不是 localhost。 在終端中輸入以下內容並導航到提供的 url:

docker-machine ip

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM