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 条评论