第一步:创建Dockerfile文件
在django项目的根目录中创建一个名为Dockerfile的文件,并写入如下配置:
# 使用 Python 3.12 作为基础镜像
FROM python:3.12
# 设置工作目录
WORKDIR /app
# 复制项目文件到工作目录
COPY . /app
# 设置清华 pip 镜像
ENV PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
ENV PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn
# 安装项目依赖
RUN pip install -r requirements.txt
# 设置环境变量
ENV PYTHONUNBUFFERED=1
# 启动 Django 服务器
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
第二步:将Django项目上传到服务器的某个目录中
这里以1Panel面板为例,将Django项目上传到这个地方
第三步:cd至Django项目所在目录并在终端中打开输入如下命令
比如我这里Django项目上传的路径是:
cd /opt/1panel/apps/openresty/openresty/www/sites/django-app
第四步: 执行Docker的构建命令
docker build -t django-app .
这段Docker命令的含义如下:
-
docker build
: 这是Docker命令的一部分,用于构建Docker镜像。 -
-t django-app
: 这是docker build
命令的一个选项,用于为构建的镜像指定一个标签(tag)。在这个例子中,将构建的镜像标记为“django-app”。 -
.
: 这是docker build
命令的参数,指定了要构建的Dockerfile所在的路径。.
表示当前目录,即Dockerfile位于当前目录中。
第五步: 执行Docker的运行命令
docker run -d --name my-django-container -p 8000:8000 django-app
这段Docker命令的含义如下:
-
docker run
: 这是Docker命令的一部分,用于创建并运行一个新的容器。 -
-d
: 这是docker run
命令的一个选项,它表示以“后台模式”或“守护进程”运行容器,即在后台运行容器而不阻塞终端。 -
--name my-django-container
: 这是为容器指定一个名称的选项。在这个例子中,容器将被命名为“my-django-container”。 -
-p 8000:8000
: 这个选项将主机(Host)的端口映射到容器的端口。在这个例子中,它将主机的端口8000映射到容器的端口8000。这意味着,当主机上的用户访问主机的8000端口时,请求将被重定向到运行在容器内的应用程序的8000端口上。 -
django-app
: 这是要在容器中运行的Django应用程序的名称或标签。假设在Docker中已经有一个包含Django应用程序的镜像,并且它已经被命名为“django-app”。
最后:查看镜像
docker ps
该命令会列出正在运行的镜像,如过看到镜像列表中有刚刚部署上去的Django项目,就代表项目部署成功。至此,可以在浏览器中输入http://xxx.xxx.xxx.xxx:8000
进行访问