Fork me on GitHub

Docker环境配置:mysql nginx django

Docker环境配置:mysql nginx django

  1. docker配置mysql

    1. docker search mysql
    2. docker pull mysql:5.7.24 注意:mysql Tags (docker.com)可以通过该网址查找指定的容器版本tag。
    3. 运行mysql容器:docker run -d -p 3305:3306 --name mysql_01 -e MYSQL_ROOT_PASSWORD=nlp123456 mysql:5.7.24

    其中:-d:表示后台运行;-p 3305:3306:表示端口映射

  2. docker配置nginx

    1. docker search nginx

    2. docker pull nginx 这里不做tag就默认下载最新版本

    3. 运行镜像:* run -d -p 83:80 --name nginx_01 nginx

    4. 查看所有的镜像:docker ps -a

    5. 本地创建3个文件夹:mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

    6. 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器 ID 可以查看 docker ps 命令输入中的第一列:docker cp a6441efa5132:/etc/nginx/nginx.conf ~/nginx/conf

    7. 最终执行指令

      1. 把主机的 ~/nginx文件夹挂载到 mysqldocker容器的/usr/share/nginx文件夹里面
      2. 改nginx的配置文件就只需要把nginx配置文件放在自定义的文件夹下( ~/nginx)
      3. 同时前端项目只需要放到~/nginx/www目录下就ok:
      4. 执行指令:docker run -d -p 83:80 --name nginx_242 -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx
  3. docker配置django

    ​1.配置Dockerfile

    1. base_images下的Dockerfile配置
    #这里我使用的是linux centos7系统环境
    FROM centos:7
    
    #这里主要是添加一下作者信息
    MAINTAINER 1091173065@qq.com
    
    #这里是存放的路径(网上大多说这里是设置环境变量,本人是没理解,根据我的实践,这里是将项目做成镜像后的路径)
    #ENV CODE_DIR=/home/hcx/images/admin_crawl
    #ENV DOCKER_SCRIPTS=$CODE_DIR/base_images/scripts
    ENV CODE_DIR=/opt/admin_crawl
    ENV DOCKER_SCRIPTS=$CODE_DIR/base_image/scripts
    
    #将scripts下的文件复制到镜像中的镜像中的目录里(这里个人感觉没有什么太大作用,先这样进行复制)
    COPY ./scripts/* $DOCKER_SCRIPTS/
    
    #执行镜像中的provision.sh脚本
    RUN chmod a+x $DOCKER_SCRIPTS/*
    RUN $DOCKER_SCRIPTS/provision.sh
    
    1. scripts下的provision.sh配置
    #!/bin/bash
    set -e
    
    #python环境依赖(这里主要就是针对python环境所安装的一些依赖包)
    yum install -y \
        kde-l10n-Chinese\
        glibc-common\
        git\
        wget\
        mysql-devel\
        gcc\
        swig\
        pulseaudio\
        pulseaudio-libs\
        pulseaudio-libs-devel\
        zlib-devel\
        bzip2-devel\
        openssl-devel\
        ncurses-devel\
        sqlite-devel\
        readline-devel\
        tk-devel\
        gdbm-devel\
        db4-devel\
        libpcap-devel\
        xz-devel\
        libffi-devel\
        ncurese-devel\
        automake\
        autoconf\
        libtool\
        make\
        alsa-lib-devel\
        poppler-utils\
    
    
    #python3.7(开始安装Python环境)
    wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
    tar -zxvf Python-3.7.7.tgz
    cd Python-3.7.7
    ./configure
    make && make install
    rm -rf Python-3.7.7*
    
    1. 主目录(admin_crawl)下的Dockerfile配置
    #基础镜像(这里的base_app_image就是之前制作的基础镜像,项目镜像是在基础镜像的基础上进行制作的,这个一定要理解清楚)
    FROM base_app_image:1.0
    
    #这里主要就是设置一下编码语言
    RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
    ENV LC_ALL zh_CN.UTF-8
    
    
    #将项目目录文件复制到镜像中,CODE_DIR是在基础镜像中定义的
    COPY . $CODE_DIR
    
    
    #安装项目所需的依赖包(这里借鉴的网上的部分资料)
    RUN pip3 install -U pip
    RUN pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple
    RUN pip3 config set install.trusted-host mirrors.aliyun.com
    RUN pip3 install altgraph==0.17
    RUN pip3 install asgiref==3.2.10
    RUN pip3 install attrs==20.2.0
    RUN pip3 install beautifulsoup4==4.9.1
    RUN pip3 install bs4==0.0.1
    RUN pip3 install certifi==2020.6.20
    RUN pip3 install click==7.1.2
    RUN pip3 install contrib==0.3.0
    RUN pip3 install cycler==0.10.0
    RUN pip3 install Django==3.1.3
    RUN pip3 install docopt==0.6.2
    RUN pip3 install Flask==1.1.2
    RUN pip3 install httpserver==1.1.0
    RUN pip3 install importlib-metadata==2.0.0
    RUN pip3 install itsdangerous==1.1.0
    RUN pip3 install Jinja2==2.11.2
    RUN pip3 install jsonschema==3.2.0
    RUN pip3 install kiwisolver==1.2.0
    RUN pip3 install macholib==1.14
    RUN pip3 install MarkupSafe==1.1.1
    RUN pip3 install matplotlib==3.3.2
    RUN pip3 install numpy==1.19.2
    RUN pip3 install Pillow==8.0.1
    RUN pip3 install django-filter
    RUN pip3 install PyMySQL
    RUN pip3 install djangorestframework
    RUN pip3 install django-encrypted-model-fields
    RUN pip3 install django-python3-ldap
    RUN pip3 install django-cors-headers
    RUN pip3 install py2neo
    RUN pip3 install selenium
    RUN pip3 install my_fake_useragent
    RUN pip3 install lxml
    #暴露端口
    EXPOSE 8000
    
    #启动项目,这里的路径就是前面基础镜像包的CODE_DIR路径,再加上自己的项目复制到里面的路径,不清楚的可以参考这我给出的结构进行比对
    CMD ["python3", "/opt/admin_crawl/manage.py", "runserver", "0.0.0.0:8000"]
    
    1. 制作基础镜像,在base_image文件夹中执行以下命令:docker build -t base_app_image:1.0 . #注意这里的base_app_image指的是基础镜像的名称,后面制作项目镜像会用到这里名称;注意:版本号后面有一个点一定要加上**

    2. 制作项目镜像:docker build -t my_app:1.0 . #这里的my_app就是自己项目的镜像名称

    3. 查看镜像是否制作成功:docker images

    4. 启动镜像:docker run -d -p 8000:8000 --name admin_242 admin_crawl:6.0

posted @ 2021-05-06 15:26  壶小旭  阅读(221)  评论(0编辑  收藏  举报