一、项目环境

  公司在实际的生产环境中,需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务进行相关的性能调优和管理工作。

1. 环境配置

主机操作系统IP地址主要软件
DockerCentOS 7.3 x86_64192.168.145.15Docker 19.03

容器ip地址规划

nginx容器ip地址:172.18.0.10mysql容器ip地址:172.18.0.20php容器ip地址:172.18.0.30

2. 任务需求

(1)使用Docker构建LNMP环境并运行Wordpress网站平台。

(2)限制Nginx容器最多使用500Mb的内存和1G的Swap。

(3)限制Mysql容器写 /dev/sda 的速率为 10 MB/s。

(4)将所有容器进行快照,然后将Docker镜像打包成tar包备份到本地。

二、 部署过程

1. 环境配置

#前提本地已经安装docker,配置lnmp的文件目录 cd /opt/mkdir lnmpcd lnmp/mkdir nginx mysql php

#构建yum安装的依赖包容器cd /opt/lnmp/mkdir centoscd centos/vim DockerfileFROM centos:7#nginx安装包RUN yum install -y pcre-devel \zlib-devel \openssl-devel \gcc \gcc-c++ \make \#mysql安装包ncurses \ncurses-devel \bison \cmake \#php安装包gd \libjpeg libjpeg-devel \libpng libpng-devel \freetype freetype-devel \libxml2 libxml2-devel \zlib zlib-devel \curl curl-devel \openssl openssl-devel

#安装镜像docker build -t centos7:pack .docker images

2. 部署构建 nginx 容器

#nginx目录下已上传nginx安装包以及论坛安装包cd nginx/ls

#修改nginx配置文件vim nginx.conf...server {...location / {root html;indexindex.php index.html index.htm;}...location ~ \.php$ {root html;fastcgi_pass 172.18.0.30:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME/usr/local/nginx/html$fastcgi_script_name;includefastcgi_params;}

#构建自定义网络docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mylnmp1d31b24a91f3c5c38def3d3b853d470ebfa03605e6a14c57d6b6f0ea9939d98bdocker network lsNETWORK ID NAMEDRIVERSCOPE7fcb679c6080 bridgebridgelocale06421ce591e hosthostlocalb084bede80c1 mylnmpbridgelocalad41911b801f nonenulllocal

#创建nginx镜像cd /opt/lnmp/nginxvim DockerfileFROM centos7:pack MAINTAINER this is nginx image <datang 2023-07-24>ADD nginx-1.24.0.tar.gz /usr/local/RUN useradd -M -s /sbin/nologin nginx && \cd /usr/local/nginx-1.24.0 && \./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_module && make && make install && \yum clean allCOPY nginx.conf /usr/local/nginx/conf/nginx.confFROM centos:7#设置多个阶段的构建,将第一阶段构建生成的软件包目录复制到第二阶段的软件包目录里COPY --from=0 /usr/local/nginx/ /usr/local/nginx/RUN useradd -M -s /sbin/nologin nginxEXPOSE 80CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

#构建nginx容器docker build -t nginx:pack .docker images

#创建并启动容器docker run -d