0
点赞
收藏
分享

微信扫一扫

Linux开发:tmpfs文件系统

一、部署 Nginx 镜像

1. 建立工作目录

 mkdir /opt/lnmp/nginx -p
 cd /opt/lnmp/nginx
 #上传 nginx 安装包 nginx-1.12.0.tar.gz
 #上传 wordpress 服务包 wordpress-4.9.4-zh_CN.tar.gz

 mkdir /opt/lnmp/nginx/html
 tar zxvf wordpress-4.9.4-zh_CN.tar.gz -C /opt/lnmp/nginx/html

2. 编写 Dockerfile 脚本

vim Dockerfile
 ​
 FROM centos:7
 MAINTAINER this is nginx image <zy>
 RUN yum -y update
 RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
 RUN useradd -M -s /sbin/nologin nginx
 ADD nginx-1.12.0.tar.gz /usr/local/src/
 WORKDIR /usr/local/src/nginx-1.12.0
 RUN ./configure \
 --prefix=/usr/local/nginx \
 --user=nginx \
 --group=nginx \
 --with-http_stub_status_module && make -j4 && make install
 ENV PATH /usr/local/nginx/sbin:$PATH
 ADD nginx.conf /usr/local/nginx/conf/
 #ADD wordpress-4.9.4-zh_CN.tar.gz /usr/local/nginx/html/
 RUN chmod 777 -R /usr/local/nginx/html/
 EXPOSE 80
 EXPOSE 443
 ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]

3. 准备 nginx.conf 配置文件

vim nginx.conf
 ​
 #user  nobody;
 worker_processes  1;
  
 #error_log  logs/error.log;
 #error_log  logs/error.log  notice;
 #error_log  logs/error.log  info;
  
 #pid        logs/nginx.pid;
  
  
 events {
     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  localhost;
  
         charset utf-8;
  
         #access_log  logs/host.access.log  main;
  
         location / {
             root   html;
             index  index.html index.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 {
             root   html;
         }
  
         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
         #
         #location ~ \.php$ {
         #    proxy_pass   http://127.0.0.1;
         #}
  
         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
         #
         location ~ \.php$ {
             root           html;
             fastcgi_pass   172.18.0.30:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
             include        fastcgi_params;
         }
  
         # deny access to .htaccess files, if Apache's document root
         # concurs with nginx's one
         #
         #location ~ /\.ht {
         #    deny  all;
         #}
     }
  
  
     # another virtual host using mix of IP-, name-, and port-based configuration
     #
     #server {
     #    listen       8000;
     #    listen       somename:8080;
     #    server_name  somename  alias  another.alias;
  
     #    location / {
     #        root   html;
     #        index  index.html index.htm;
     #    }
     #}
  
  
     # HTTPS server
     #
     #server {
     #    listen       443 ssl;
     #    server_name  localhost;
  
     #    ssl_certificate      cert.pem;
     #    ssl_certificate_key  cert.key;
  
     #    ssl_session_cache    shared:SSL:1m;
     #    ssl_session_timeout  5m;
  
     #    ssl_ciphers  HIGH:!aNULL:!MD5;
     #    ssl_prefer_server_ciphers  on;
  
     #    location / {
     #        root   html;
     #        index  index.html index.htm;
     #    }
     #}
  
 }

二、部署 Mysql 镜像

1. 建立工作目录

 mkdir /opt/lnmp/mysqld
 cd /opt/lnmp/mysqld
  
 #上传 mysql-boost-5.7.20.tar.gz 到 /opt/mysqld 目录中

2. 编写 Dockerfile

vim Dockerfile
 ​
 FROM centos:7
 MAINTAINER this is mysql image <zy>
 RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
 ADD mysql-boost-5.7.20.tar.gz /usr/local/src/
 WORKDIR /usr/local/src/mysql-5.7.20/
 RUN cmake \
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
 -DSYSCONFDIR=/etc \
 -DSYSTEMD_PID_DIR=/usr/local/mysql \
 -DDEFAULT_CHARSET=utf8  \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
 -DMYSQL_DATADIR=/usr/local/mysql/data \
 -DWITH_BOOST=boost \
 -DWITH_SYSTEMD=1 && make -j4 && make install
 ADD my.cnf /etc/
 ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
 RUN useradd -M -s /sbin/nologin  mysql
 RUN chown mysql:mysql /etc/my.cnf
 RUN chown -R mysql:mysql /usr/local/mysql/
 RUN /usr/local/mysql/bin/mysqld \
 --initialize-insecure \
 --user=mysql \
 --basedir=/usr/local/mysql \
 --datadir=/usr/local/mysql/data
 EXPOSE 3306
 CMD ["/usr/local/mysql/bin/mysqld"]

3. 准备 my.cnf 文件

vim my.cnf
  
 [client]
 port = 3306
 default-character-set=utf8
 socket = /usr/local/mysql/mysql.sock
  
 [mysql]
 port = 3306
 default-character-set=utf8
 socket = /usr/local/mysql/mysql.sock
  
 [mysqld]
 user = mysql
 basedir = /usr/local/mysql
 datadir = /usr/local/mysql/data
 port = 3306
 character_set_server=utf8
 pid-file = /usr/local/mysql/mysqld.pid
 socket = /usr/local/mysql/mysql.sock
 server-id = 1
  
 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

三、部署 php 镜像

1. 建立工作目录

 mkdir /opt/lnmp/php
 cd /opt/lnmp/php
 #上传 php-7.1.10.tar.bz2 到 /opt/php 目录中

2. 编写 Dockerfile

vim Dockerfile 
  
 FROM centos:7
 MAINTAINER this is php image <zy>
 RUN yum install -y gd \
 libjpeg libjpeg-devel \
 libpng libpng-devel \
 freetype freetype-devel \
 libxml2 libxml2-devel \
 zlib zlib-devel \
 curl curl-devel \
 openssl openssl-devel \
 gcc gcc-c++ make pcre-devel;useradd -M -s /sbin/nologin nginx
 ADD php-7.1.10.tar.bz2 /usr/local/src/
 WORKDIR /usr/local/src/php-7.1.10
 RUN ./configure \
 --prefix=/usr/local/php \
 --with-mysql-sock=/usr/local/mysql/mysql.sock \
 --with-mysqli \
 --with-zlib \
 --with-curl \
 --with-gd \
 --with-jpeg-dir \
 --with-png-dir \
 --with-freetype-dir \
 --with-openssl \
 --enable-fpm \
 --enable-mbstring \
 --enable-xml \
 --enable-session \
 --enable-ftp \
 --enable-pdo \
 --enable-tokenizer \
 --enable-zip ; make -j 4 ; make install
 ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
 ADD php.ini     /usr/local/php/lib/
 ADD php-fpm.conf /usr/local/php/etc/
 ADD www.conf /usr/local/php/etc/php-fpm.d/
 EXPOSE 9000
 CMD /usr/local/php/sbin/php-fpm -F

3. 准备 php.ini、php-fpm.conf、www.conf 配置文件

 vim php.ini
  
 #939行,取消注释,修改
 date.timezone = Asia/Shanghai
 #1170行,修改
 mysqli.default_socket = /usr/local/mysql/mysql.sock
 ​
 #######
 vim php-fpm.conf
  
 #17行,删除注释符号“;”
 pid = run/php-fpm.pid
 ​
 #######
 vim www.conf
  
 #23、24行,修改用户和组
 user = nginx
 group = nginx
 #36行,修改监听IP和端口为容器IP:9000端口
 listen = 172.18.0.30:9000

四、准备 docker-compose.yml 文件

1. 配置 docker-compose.yml 文件

cd /opt/lnmp
 vim docker-compose.yml
 ​
 version: '3'
 services:
   nginx:
     container_name: nginx
     hostname: nginx
     build:
       context: ./nginx
       dockerfile: Dockerfile
     ports:
       - 1233:80
       - 1234:443
     networks:
       lnmp:
         ipv4_address: 172.18.0.10
     volumes:
       - ./nginx/html:/usr/local/nginx/html
       
   mysql:
     container_name: mysql
     hostname: mysql
     build:
       context: ./mysqld
       dockerfile: Dockerfile
     networks:
       lnmp:
         ipv4_address: 172.18.0.20
     volumes:
       - t_data:/usr/local/mysql
     privileged: true
     
   php:
     container_name: php
     hostname: php
     build:
       context: ./php
       dockerfile: Dockerfile
     ports:
       - 9000:9000
     networks:
       lnmp:
         ipv4_address: 172.18.0.30
     volumes:
       - t_data:/usr/local/mysql
       - ./nginx/html:/usr/local/nginx/html
 ​
 networks:
   lnmp:
     driver: bridge
     ipam:
       config:
         - subnet: 172.18.0.0/16
 ​
 volumes:
   t_data:

2. 运行yml文件

 docker-compose -f docker-compose.yml up -d

五、启动 wordpress 服务

1. mysql 授权

docker exec -it mysql /bin/bash
  
mysql -u root -p
Enter password: 
#初始密码为空
mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)
 
mysql> grant all privileges on wordpress.* to 'wordpress'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

2. 浏览器访问测试

访问 http://172.168.1.11:1233/wordpress/index.php

举报

相关推荐

0 条评论