Docker环境配置:mysql nginx django
Docker环境配置:mysql nginx django
-
docker配置mysql
- docker search mysql
- docker pull mysql:5.7.24 注意:mysql Tags (docker.com)可以通过该网址查找指定的容器版本tag。
- 运行mysql容器:docker run -d -p 3305:3306 --name mysql_01 -e MYSQL_ROOT_PASSWORD=nlp123456 mysql:5.7.24
其中:-d:表示后台运行;-p 3305:3306:表示端口映射
-
docker配置nginx
-
docker search nginx
-
docker pull nginx 这里不做tag就默认下载最新版本
-
运行镜像:* run -d -p 83:80 --name nginx_01 nginx
-
查看所有的镜像:docker ps -a
-
本地创建3个文件夹:mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
-
拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器 ID 可以查看 docker ps 命令输入中的第一列:docker cp a6441efa5132:/etc/nginx/nginx.conf ~/nginx/conf
-
最终执行指令
- 把主机的 ~/nginx文件夹挂载到 mysqldocker容器的/usr/share/nginx文件夹里面
- 改nginx的配置文件就只需要把nginx配置文件放在自定义的文件夹下( ~/nginx)
- 同时前端项目只需要放到~/nginx/www目录下就ok:
- 执行指令: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
-
-
docker配置django
1.配置Dockerfile
- 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
- 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*
- 主目录(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"]
-
制作基础镜像,在base_image文件夹中执行以下命令:docker build -t base_app_image:1.0 . #注意这里的base_app_image指的是基础镜像的名称,后面制作项目镜像会用到这里名称;注意:版本号后面有一个点一定要加上**
-
制作项目镜像:docker build -t my_app:1.0 . #这里的my_app就是自己项目的镜像名称
-
查看镜像是否制作成功:docker images
-
启动镜像:docker run -d -p 8000:8000 --name admin_242 admin_crawl:6.0
脚踏实地,注重基础。