当前位置: 首页 > 后端技术 > Python

docker部署django

时间:2023-03-26 15:38:25 Python

docker概念docker是一种用于创建独立软件容器的容器技术,属于操作系统的虚拟化技术,隔离进程独立于宿主机和其他隔离进程。docker容器类比虚拟机虚拟机:需要有必要的二进制库和完整的操作系统,并占用所有预先分配的资源。Docker容器:与宿主机共享操作系统,可以实现资源的动态分配,在用户空间单独进程运行docker镜像,容器和仓库镜像是文件,容器是进程;它们之间的关系就像一个类和一个实例化对象一个类可以有多个实例化对象。仓库是一个存储和分发镜像的服务。dockerpull是从仓库下载docker镜像到本地,dockerrun是创建容器并运行命令,dockerexec-是在运行的容器中执行命令dockerinstallation根据自己的安装方式选择systemdockerinstallationdockeruse一个简单的尝试:使用dockerpullnginx:latest下载一个最新的nginx镜像。使用命令dockerrun--namemy-nginx-p80:80-dnginx:latest创建容器,命令为my-nginx,-d表示后台运行并返回容器的ID,-p指定到主机端口80的端口。打开浏览器访问80端口,使用命令dockerexec-itmy-nginxbash打开一个交互模式的终端。第一步不是必须的。当dockerrun命令找不到镜像时,会自动从仓库中拉取常用的docker命令。命令功能dockerpull从仓库下载镜像dockerimages查看本地所有镜像dockerrmi删除镜像dockerrun创建容器执行命令dockerrm删除容器dockerstop停止容器,并重启,startdockerlogs查看容器日志dockerexecbash进入容器执行其他命令单容器部署最基本的django尝试部署最基本的django项目创建一个django项目命令行输入django-adminstartprojectmysite,进入创建好的django文件夹中,我们可以看到整个项目结构。这时候我需要在项目根目录下创建一个Dockerfile文件,用来生成docker镜像。内容如下#搭建python3.7环境FROMpython:3.7#镜像作者MAINTAINERLALALA#设置python环境变量ENVPYTHONUNBUFFERED1#设置pip源为国内源COPYpip.conf/root/.pip/pip.conf#在容器中创建mysite文件夹RUNmkdir-p/var/www/html/mysite#设置容器工作目录WORKDIR/var/www/html/mysite#添加当前目录文件到容器工作目录(.代表当前主机目录)添加。/var/www/html/mysite#pip安装取决于RUNpipinstall-r要求。txt继续在项目根目录创建pip.conf文件,用于修改pip镜像源[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host=镜像。aliyun.com终于创建了requirements.txt文件,因为只需要django,只需要安装djangoDjango==3.2.12项目内容设置好后,在项目根目录下输入命令dockerbuild-tdjango_docker_img:v1。创建镜像,使用命令dockerimages查看镜像,可以看到Dockerfile中新创建的镜像第一行来自python:3.7,即从docker仓库中拉取python:3.7的镜像在创建过程中。如果速度太慢,请修改你的docker镜像源,可以直接在docker界面修改,https://b2bk1nge.mirror.aliyuncs.com输入命令dockerrun-it-d-p80:8000--namemysitedjango_docker_img:v1创建并运行容器,这个名字会让容器映射到本地80端口,使用dockerps查看运行状态,然后使用命令dockerexec-itmysitebash进入容器,你会发现此时你在Dockerfile中设置的工作目录中。该目录下的内容为项目文件的内容,pip已经在.txt中安装了需求依赖,最后在容器的bash中执行如下命令完成数据库迁移,运行django项目pythonmanage.pymakemigrationspythonmanage.pymigratepythonmanage.pyrunserver0.0.0.0:8000#一定要写0.0.0.0,如果是127.0.0.1是容器的环回地址,会导致宿主机无法访问。此时在浏览器中访问http://127.0.0.1/可以看到正在运行的django项目的概要。这篇文章主要是尝试使用docker来部署项目,自己在学习过程中也踩过一些坑。目前使用docker安装镜像非常方便。在安装需要的软件之前,经常会遇到各种小bug。使用docker后,只需要简单。拉取镜像创建容器,两行命令解决所有烦恼。

猜你喜欢