Docker - 入门DockerCompose与Django

2024-04-16 09:38

本文主要是介绍Docker - 入门DockerCompose与Django,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文说明如何使用docker-compose运行一个简单的Django/PostgreSQL应用。在这之前,记得先安装好docker和docker-compose

参考链接 https://docs.docker.com/compose/django/

定义工程的镜像

首先,先列出三个重要的会使用到的文件

  • Dockerfile
  • Python依赖文件
  • docker-compose.yml文件

接下来,我们从工程创建一步步开始

  1. 创建一个空文件夹
    即工程的文件夹,会包含工程的代码,以及以上三个列出的文件
  2. 创建一个Dockerfile文件
    Dockerfile定义了该应用的镜像。一但build完成之后,可以在容器里运行起来该镜像。关于更多的Dockerfile的信息,可以查看Dockerfile reference
  3. 添加以下信息到Dockerfile
    添加的配置如下
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

该镜像的基础是Python 3的镜像,通过把requirements.txt文件添加进去,原始Python 3的镜像修改就是增加了新的Python依赖

  1. 保存并关闭Dockerfile

  2. 在工程目录下创建一个requirements.txt文件
    该文件会在Dockerfile中用到,就是命令RUN pip install -r requirements.txt

  3. 添加下列依赖到文件里面去

Django>=2.0,<3.0
psycopg2>=2.7,<3.0
  1. 保存并退出requirements.txt文件
  2. 创建docker-compose.yml文件
    docker-compose.yml文件描述了组成应用的所需服务。在我们的这个例子里面,需要的服务是一个web server和一个database。compose文件定义的内容包括:(1)服务使用了哪些镜像(2)服务之间如何关联(3)挂载了哪些目录(4)暴露了哪些端口。如果需要更多关于docker-compose.yml文件的信息,可以查看docker-compose Reference
    内容可定义如下:
  version: '3'services:db:image: postgresenvironment:- POSTGRES_DB=postgres- POSTGRES_USER=postgres- POSTGRES_PASSWORD=postgresweb:build: .command: python manage.py runserver 0.0.0.0:8000volumes:- .:/codeports:- "8000:8000"depends_on:- db
  1. 保存并退出docker-compose.yml

  2. 创建一个Django项目
    以下省略…

  3. Django项目连接数据库
    修改settings.py文件,其中数据库配置如下

DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql','NAME': 'postgres','USER': 'postgres','PASSWORD': 'postgres','HOST': 'db','PORT': 5432,}
}

这些配置项都在docker-compose.yml中已配置。

  1. 在根目录运行命令docker-compose up
$ docker-compose up
djangosample_db_1 is up-to-date
Creating djangosample_web_1 ...
Creating djangosample_web_1 ... done
Attaching to djangosample_db_1, djangosample_web_1
db_1   | The files belonging to this database system will be owned by user "postgres".
db_1   | This user must also own the server process.
db_1   |
db_1   | The database cluster will be initialized with locale "en_US.utf8".
db_1   | The default database encoding has accordingly been set to "UTF8".
db_1   | The default text search configuration will be set to "english".. . .web_1  | May 30, 2017 - 21:44:49
web_1  | Django version 1.11.1, using settings 'composeexample.settings'
web_1  | Starting development server at http://0.0.0.0:8000/
web_1  | Quit the server with CONTROL-C.

然后你就可以通过http://localhost:8000访问了

这篇关于Docker - 入门DockerCompose与Django的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/908431

相关文章

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Django序列化中SerializerMethodField的使用详解

《Django序列化中SerializerMethodField的使用详解》:本文主要介绍Django序列化中SerializerMethodField的使用,具有很好的参考价值,希望对大家有所帮... 目录SerializerMethodField的基本概念使用SerializerMethodField的

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins