目录
任务需求:
(1)使用Docker构建LNMP环境并运行Wordpress网站平台。
(2)限制Nginx容器最多使用500Mb的内存和1G的Swap。
(3)限制Mysql容器写 /dev/sda 的速率为 10 MB/s。
(4)将所有容器进行快照,然后将Docker镜像打包成tar包备份到本地。
一、规划:
二、准备:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#关闭防火墙和核心防护
docker pull centos:7
#从docker Hub公共仓库下载基础镜像
docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork
#设置自定义网络模式,模式为bridge模式,docker1的ip地址为172.18.0.1,显示的网络名称mynetwork。
docker network ls
#查看使用的网络模式
ifconfig
##查看是否成功
mkdir /opt/nginx
mkdir /opt/mysql
mkdir /opt/php ##创建工作目录
三、部署nginx容器(172.18.0.10):
1.编写Dockerfile构建镜像:
FROM centos:7 AS first
#使用centos:7镜像作为底层镜像
MAINTAINER this is nginx image <wl 20231021>
#管理员信息(可不写)
ADD nginx-1.24.0.tar.gz /opt/
#上传安装包至容器/opt目录
RUN yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make && \
useradd -M -s /sbin/nologin nginx && \
cd /opt/nginx-1.24.0 && \
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && \
make && \
make install
#编译安装nginx
FROM centos:7
COPY --from=first /usr/local/nginx/ /usr/local/nginx/
#多层构建,使用上层镜像作为底层镜像,减小镜像体积
RUN useradd -M -s /sbin/nologin nginx
#创建nginx用户
EXPOSE 80
EXPOSE 443
#开启80,443端口
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]
#指定nginx前台启动
2.准备nginx配置文件:
#user nobody;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name www.wzw.com;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root html;
index index.php index.html; #添加.php结尾的默认文件名
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html