docker之 django dockerfile部署

dockerfile---django部署


目录

docker 基本命令
git 拉取代码
配置python、pip
配置 uwsgi、nginx
配置 nginx
启动
总览


docker基本命令

镜像

  • docker image ls 查看所有镜像
  • docker run 运行镜像
     -d 后台启动
     -p 映射端口 宿主机端口:容器端口 
     -w 目录 设置容器当前工作目录,命令将从该目录运行
     -v  卷名称:容器内存储名称 
     -i 交互式 运行镜像 启动bash
     -t 记录日志返回信息 
     --network 容器网络名
     -e 指定环境变量
     image名 /bin/bash
     --name  容器名称
    
  • docker image rm 删除镜像

容器

  • docker ps 正在运行的容器
  • docker rm -f 强制删除容器

Dockerfile文件参数 官网链接

  • FROM 基于镜像
  • RUN 运行命令 -- 每个run 都是一个单独的shell
  • ADD 拷贝文件文件到容器 可以解压tar文件
  • COPY 拷贝文件到容器
  • ENV 设置环境变量
  • VOLUME 目录映射(数据持久化)
  • WORKDIR 工作路径 (shell进入 容器 到达目录)
  • EXPOSE 开放端口

环境配置

基于centos7镜像容器

切换yum 镜像源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache

git 拉取代码(uwsgi.ini nginx.cnf 在仓库中)

  yum -y install git
  git clone http://**:***@***.git /home/VisualOa/
注:git免密拉取格式:  http://用户名:access token@仓库地址   access token gitlab设置 配置

配置python pip(编译安装)

 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel  postgresql-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc automake autoconf libtool make
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz && tar -xvJf Python-3.8.0.tar.xz && \
cd Python-3.8.0 && ./configure --prefix=/usr/local/python3 && make && make install && ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3 \
&& ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
python3 -m pip install --upgrade pip -i http://pypi.douban.com/simple/

配置uwsgi

  pip3 install uwsgi -i http://pypi.douban.com/simple/
  uwsgi --ini /home/VisualOa/uwsgi.ini

配置nginx

  yum -y install epel-release
  yum -y install nginx
  nginx -c /home/VisualOa/nginx.conf

启动

 git build -t '镜像命名' Dockerfile路径
 git run -itd -p 80:80 -p 9191:9191 --name '容器名称' <imageId>

Dockerfile总览

 FROM centos:7

 RUN yum -y install wget

 # 配置aliyun镜像
 RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
 RUN yum clean all
 RUN yum makecache


 #  安装git
 RUN yum -y install git
 # 拉取代码
 RUN git clone http://**:***@***.git /home/VisualOa/



 # 安装python3 配置pip
 RUN yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel  postgresql-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc automake autoconf libtool make
 RUN wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz && tar -xvJf Python-3.8.0.tar.xz && \
 cd Python-3.8.0 && ./configure --prefix=/usr/local/python3 && make && make install && ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3 \
 && ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
 RUN python3 -m pip install --upgrade pip -i http://pypi.douban.com/simple/

 # 创建虚拟环境
 RUN python3 -m venv /home/VisualOa/venv/
 RUN /home/VisualOa/venv/bin/python3 -m pip install --upgrade pip -i http://pypi.douban.com/simple/
 RUN /home/VisualOa/venv/bin/pip3 install -r /home/VisualOa/requirements.txt
 # 配置uwsgi
 RUN pip3 install uwsgi -i http://pypi.douban.com/simple/
 EXPOSE 9191
 RUN uwsgi --ini /home/VisualOa/uwsgi.ini

 # 配置nginx
 RUN yum -y install epel-release
 RUN yum -y install nginx
 EXPOSE 80
 RUN rm -f /etc/nginx/nginx.conf
 RUN nginx -c /home/VisualOa/nginx.conf

 RUN echo "done "

 CMD uwsgi --ini /home/VisualOa/uwsgi.ini && nginx -c /home/VisualOa/nginx.conf

描述

持续补充中 ....
posted @ 2022-06-10 15:13  飘渺云烟  阅读(332)  评论(0编辑  收藏  举报