Docker Python Django 初始配置设置

docker 工作流程

1. 确保您的 dockerfile 正确

确保您的 dockerfile 已准备好并位于项目的根目录中。根据前面的讨论,您的 dockerfile 可能如下所示:

from python:3.11

env pythondontwritebytecode=1
env pythonunbuffered=1

workdir /app

copy requirements.txt .

run pip install --upgrade pip
run pip install -r requirements.txt

copy . .

expose 8000

cmd ["python", "manage.py", "runserver", "0.0.0.0:8000"]

.
.
.

2. 构建 docker 镜像

打开终端并导航到 dockerfile 所在的目录。然后运行以下命令构建 docker 镜像并将其命名为 my-docker-image:

docker build -t my-docker-image .

此命令运行容器并将容器的端口 8000 映射到本地计算机上的端口 8000,允许您通过 http://localhost:8000 访问 django 应用程序。

如果你想在后台运行容器,请添加 -d 选项:

docker run -d -p 8000:8000 my-docker-image

这将以分离模式启动容器。

**docker 镜像**

要检查系统上可用的 docker 镜像,您可以使用以下命令:

docker images

此命令将显示所有 docker 映像的列表,以及它们的存储库、标签、映像 id、创建的和大小。

示例输出:

repository          tag       image id       created        size
my-docker-image     latest    d1a1f2e8f7b2   2 hours ago    450mb
python              3.11      a2d3c4e5f6g7   5 days ago     800mb

解释:

  • repository:镜像的名称,例如 my-docker-image。
  • tag:镜像的标签,常用于指定版本。
  • 图像 id:图像的唯一标识符。
  • created:创建图像的时间。
  • size:图像的大小。

.
.
.

3.构建 docker 容器

您提供的命令将以分离模式运行名为 my-docker-container 的 docker 容器,将本地计算机上的端口 8001 映射到容器内的端口 8000。该命令的作用如下:

命令:

docker run -d --name my-docker-container -p 8001:8000 my-docker-image

解释:

  • -d:以分离模式运行容器,这意味着它在后台运行。
  • --name my-docker-container:将名称 my-docker-container 分配给容器。
  • -p 8001:8000:将本地计算机上的端口 8001 映射到容器内的端口 8000。这允许您访问 django 应用程序:http://localhost:8001。
  • my-docker-image:指定用于容器的 docker 映像。

验证容器正在运行

运行此命令后,您可以使用以下命令检查容器是否正在运行:

docker ps

这将列出所有正在运行的容器及其名称、状态和端口映射。

访问应用程序

您现在可以通过在 web 浏览器中导航到 http://localhost:8001 来访问您的 django 应用程序。

.
.
.

4.docker 卷

docker run -d --name my-docker-container -p 8001:8000 -v .:/app my-docker-image

您提供的 docker run 命令用于从 docker 镜像启动 docker 容器。以下是该命令的详细说明:

  • -d:以分离模式运行容器(在后台)。
  • --name my-docker-container:为容器分配名称(my-docker-container)。
  • -p 8001:8000:将容器内的端口 8000 映射到主机上的端口 8001。这意味着您可以在主机上的 localhost:8001 上访问容器中运行的服务。
  • -v .:/app:将当前目录 (.) 从主机挂载到容器内的 /app 目录。当您想要实时查看更改而不重建映像时,这对于开发非常有用。
  • my-docker-image:指定用于容器的 docker 映像。

因此,此命令将在后台启动一个容器,容器内的端口 8000 可通过主机的端口 8001 访问,并将当前目录挂载到容器中的 /app 。如果您需要任何调整或进一步解释,请随时询问!

.
.
.

5.docker-compose.yml

docker-compose.yml 文件用于定义和运行多容器 docker 应用程序。以下是基于 docker run 命令的 docker-compose.yml 文件的基本示例:

version: '3.8'  # specify the version of docker compose

services:
  my-service:
    image: my-docker-image  # the docker image to use
    container_name: my-docker-container  # the name of the container
    ports:
      - "8001:8000"  # map port 8000 in the container to port 8001 on the host
    volumes:
      - .:/app  # mount the current directory to /app in the container
    # optional: add environment variables if needed
    # environment:
    #   - env_var_name=value
    # optional: specify any commands to run
    # command: python app.py

# optional: define networks or other configurations here
# networks:
#   default:
#     driver: bridge

解释:

  • version:定义 docker compose 文件格式的版本。 3.8是一个常见的选择。
  • services:列出您要运行的所有容器。
    • my-service:服务的名称。您可以在这里使用任何名称。
    • image:指定要使用的 docker 镜像。
    • container_name:为容器分配名称。
    • 端口:将容器端口映射到主机端口。
    • volumes:将目录或文件从主机挂载到容器。
    • 环境:(可选)定义容器内的环境变量。
    • 命令:(可选)覆盖 docker 镜像中指定的默认命令。

要使用此 docker-compose.yml 文件,请将其保存在项目目录中并运行:

docker-compose up

此命令将根据 docker-compose.yml 文件中的配置启动容器。

Docker Python Django 初始配置设置

[来源 - mayank ahuja ]

让我们了解一下?????? ???????? -

[1.] 开发
◾ 编写您的应用程序代码。

[2.] dockerfile
◾ 创建一个 dockerfile 来定义应用程序的环境和依赖项。

[3.] 构建镜像
◾ 使用 docker build 从 dockerfile 创建 docker 镜像。

[4.] 运行容器
◾ 使用 docker run 从您的映像启动容器。
◾ 容器是应用程序的一个独立实例。

[5.]测试
◾ 在容器内测试您的应用程序。
◾ 如果进行更改,请重建映像并重新创建容器。

[6.] push => 这是可选的
◾ 使用 docker push 在注册表(例如 docker hub)上共享您的镜像。

[7.] pull => 这是可选的
◾ 其他人可以使用 docker pull 下载您的镜像并在自己的环境中运行您的应用程序。

以上就是Docker Python Django 初始配置设置的详细内容,更多请关注其它相关文章!