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
描述
持续补充中 ....