centos利用docker部署django项目
1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,验证你的CentOS 版本是否支持 Docker
uname -r
2.安装各种依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.查看所有docker版本
yum list docker-ce --showduplicates | sort -r
5.安装最新docker,出现选择时输入y即可,一路安装成功
yum install docker-ce
结果最后如下
6.安装成功后启动docker并查看docker进程
sudo systemctl start docker
ps aux |grep docker
如下表示安装成功
7.django项目结构
dockerfile为docker生成镜像文件时执行的文本文件
内容如下
FROM python:3.6
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY pip.conf /root/.pip/pip.conf
COPY requirements.txt /usr/src/app/
RUN pip install -r /usr/src/app/requirements.txt
RUN rm -rf /usr/src/app
COPY . /usr/src/app
CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8080"]
pip.conf为pip下载源设置(由于国外的下载源特别慢)
内容如下
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
进入dockfile所在的目录,利用如下命令将所有需要的模块信息打包
pip freeze >requirements.txt
修改settings.py文件ALLOWED_HOSTS=[*]
8.开始部署
现在开始docker部署
8.1 还在dockerfile同级目录,生成镜像文件
docker build -t my-python-app
8.2 开启容器
docker run -it --rm -p 8080:8080 --name docker_python1 my-python-app:latest
命令解释
docker_python1 容器名字
my-python-app 镜像文件名字
8080:8080 端口映射 由于前面dockerfile中django执行命令端口是8080,所以前面的端口映射8080,也可以写成 8000:8080
8.3 使用公网ip访问即可
8.4 进入docker容器
docker exec -it docker_python1 /bin/bash
8.5 查看所有镜像
docker image ls