centos下使用docker部署Django项目

Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

Docker的主要应用场景之一就是web应用的自动化打包和发布。下面我们将在centos系统下使用Docker打包部署Django项目。

安装Docker

1.查看当前内核版本

uname -r​

2.登录centos,确保yum包更新到最新

yum update

3.安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

4.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

5.查看仓库中所有docker版本,并选择指定版本安装

yum list docker-ce --showduplicates | sort -r

6.安装docker

yum install docker-ce #默认安装最新最稳定版本

7.验证安装是否成功

docker version

8.启动docker

service docker start

安装docker-compose

docker-compose是一个用来把docker自动化的东西。有了docker-compose 你可以把所有繁琐的docker操作全都一条命令,自动化的完成。

安装

pip install docker-compose

部署

首先,我们需要创建Python镜像,如果你使用到了MySQL数据库,那么MySQL镜像也是需要创建的。

1.创建Python镜像

docker pull python:3.6.4

2.创建MySQL镜像

docker pull mysql:5.7

补充:

下面是一些常用的操作命令

查看已创建的镜像

docker images

查看已创建的容器

docker ps -a

查看正在运行的容器

docker ps

删除镜像

docker rmi -f imageid

删除容器

docker rm -f CONTAINERID

进入docker容器

docker exec -it 容器名 /bin/bash

更新docker容器,并安装vim

apt-get update
apt-get install vim

3.在manage.py同一目录下创建docker-compose.yml与Dockerfile文件

docker-compose.yml

version: '3'

services:
  dj_web:
    build: .
    command: python ./manage.py runserver 0:8000
    volumes:
      - .:/code
    ports:
      - "8090:8000"
    depends_on:
      - db
    networks:
      default:
        aliases:
          - dj.com
  db:
    image: mysql:5.7
    environment:
     - MYSQL_DATABASE=docker_house
     - MYSQL_ROOT_PASSWORD=jin123 
    ports:
      - "3333:3306"
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

注意,Django项目的setting.py中连接数据库处要写成

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'docker_house',
        'USER': 'root',
        'PASSWORD': 'jin123',
        'HOST': 'db', # 此处与docker-compose.yml处一致,不可写成ip地址
        'PORT': '3306',
    }
}

Dockerfile

FROM python:3.6.4
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

启动项目

docker-compose up

关闭项目

docker-compose down

 

 

 

 

你可能感兴趣的:(Django)