• dockerfile 搭建lnmp+wordpress,docker-compose搭建lnmp+wordpress


    目录

    dockerfile 搭建lnmp+wordpress

    部署nginx(容器IP 为 172.18.0.10)

    部署mysql(容器IP 为 172.18.0.20)

    部署php(容器IP 为 172.18.0.30)

     docker-compose搭建lnmp+wordpress


    dockerfile 搭建lnmp+wordpress

    1. systemctl stop firewalld 
    2. systemctl disable firewalld
    3. setenforce 0
    4. docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1"  mynetwork

    部署nginx(容器IP 为 172.18.0.10)

    1. mkdir /opt/nginx
    2. cd /opt/nginx/

    上传 nginx-1.12.0.tar.gz、wordpress-4.9.4-zh_CN.tar.gz 到 /opt/nginx/ 目录中

    1. mkdir /opt/nginx/html
    2. tar zxvf wordpress-4.9.4-zh_CN.tar.gz -C /opt/nginx/html
    3. vim Dockerfile
    4. FROM centos:7
    5. MAINTAINER this is nginx image <wl>
    6. RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
    7. RUN useradd -M -s /sbin/nologin nginx
    8. ADD nginx-1.12.0.tar.gz /usr/local/src/
    9. WORKDIR /usr/local/src/nginx-1.12.0
    10. RUN ./configure \
    11. --prefix=/usr/local/nginx \
    12. --user=nginx \
    13. --group=nginx \
    14. --with-http_stub_status_module && make && make install
    15. ENV PATH /usr/local/nginx/sbin:$PATH
    16. ADD nginx.conf /usr/local/nginx/conf/
    17. #ADD wordpress-4.9.4-zh_CN.tar.gz /usr/local/nginx/html/
    18. RUN chmod 777 -R /usr/local/nginx/html/
    19. EXPOSE 80
    20. EXPOSE 443
    21. ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]
    1. docker build -t nginx:lnmp .
    2. docker run -d --name nginx -p 80:80 -v /opt/nginx/html:/usr/local/nginx/html --net mynetwork --ip 172.18.0.10 nginx:lnmp


    部署mysql(容器IP 为 172.18.0.20)

    1. mkdir /opt/mysqld
    2. cd /opt/mysqld

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

    1. vim Dockerfile
    2. FROM centos:7
    3. MAINTAINER this is mysql image <wl>
    4. RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
    5. ADD mysql-boost-5.7.20.tar.gz /usr/local/src/
    6. WORKDIR /usr/local/src/mysql-5.7.20/
    7. RUN cmake \
    8. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    9. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
    10. -DSYSCONFDIR=/etc \
    11. -DSYSTEMD_PID_DIR=/usr/local/mysql \
    12. -DDEFAULT_CHARSET=utf8  \
    13. -DDEFAULT_COLLATION=utf8_general_ci \
    14. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    15. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    16. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    17. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    18. -DMYSQL_DATADIR=/usr/local/mysql/data \
    19. -DWITH_BOOST=boost \
    20. -DWITH_SYSTEMD=1 && make && make install
    21. ADD my.cnf /etc/
    22. ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
    23. RUN useradd -M -s /sbin/nologin  mysql
    24. RUN chown mysql:mysql /etc/my.cnf
    25. RUN chown -R mysql:mysql /usr/local/mysql/
    26. RUN /usr/local/mysql/bin/mysqld \
    27. --initialize-insecure \
    28. --user=mysql \
    29. --basedir=/usr/local/mysql \
    30. --datadir=/usr/local/mysql/data
    31. EXPOSE 3306
    32. CMD ["/usr/local/mysql/bin/mysqld"]
    1. vim my.cnf
    2. [client]
    3. port = 3306
    4. socket = /usr/local/mysql/mysql.sock
    5. [mysql]
    6. port = 3306
    7. socket = /usr/local/mysql/mysql.sock
    8. [mysqld]
    9. user = mysql
    10. basedir = /usr/local/mysql
    11. datadir = /usr/local/mysql/data
    12. port = 3306
    13. character_set_server=utf8
    14. pid-file = /usr/local/mysql/mysqld.pid
    15. socket = /usr/local/mysql/mysql.sock
    16. server-id = 1
    17. 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
    1. docker build -t mysql:lnmp .
    2. docker run --name=mysql -d --privileged -v /usr/local/mysql --net mynetwork --ip 172.18.0.20 mysql:lnmp

    部署php(容器IP 为 172.18.0.30)

    1. mkdir /opt/php
    2. cd /opt/php

    上传 php-7.1.10.tar.bz2 到 /opt/php 目录中

    1. vim Dockerfile
    2. FROM centos:7
    3. MAINTAINER this is php image <wl>
    4. RUN yum -y install gd \
    5. libjpeg libjpeg-devel \
    6. libpng libpng-devel \
    7. freetype freetype-devel \
    8. libxml2 libxml2-devel \
    9. zlib zlib-devel \
    10. curl curl-devel \
    11. openssl openssl-devel \
    12. gcc gcc-c++ make pcre-devel 
    13. RUN useradd -M -s /sbin/nologin nginx
    14. ADD php-7.1.10.tar.bz2 /usr/local/src/
    15. WORKDIR /usr/local/src/php-7.1.10
    16. RUN ./configure \
    17. --prefix=/usr/local/php \
    18. --with-mysql-sock=/usr/local/mysql/mysql.sock \
    19. --with-mysqli \
    20. --with-zlib \
    21. --with-curl \
    22. --with-gd \
    23. --with-jpeg-dir \
    24. --with-png-dir \
    25. --with-freetype-dir \
    26. --with-openssl \
    27. --enable-fpm \
    28. --enable-mbstring \
    29. --enable-xml \
    30. --enable-session \
    31. --enable-ftp \
    32. --enable-pdo \
    33. --enable-tokenizer \
    34. --enable-zip && make && make install
    35. ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
    36. ADD php.ini    /usr/local/php/lib/
    37. ADD php-fpm.conf /usr/local/php/etc/
    38. ADD www.conf /usr/local/php/etc/php-fpm.d/
    39. EXPOSE 9000
    40. ENTRYPOINT [ "/usr/local/php/sbin/php-fpm", "-F" ]
    1. docker build -t php:lnmp .
    2. docker run --name=php -d -p 9000:9000 --volumes-from mysql --volumes-from nginx --net mynetwork --ip 172.18.0.30 php:lnmp
    3. docker exec -it mysql /bin/bash
    4. mysql
    5. create database wordpress;
    6. grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
    7. grant all privileges on *.* to 'root'@'%' identified by 'abc123';
    8. flush privileges;

    浏览器访问:
    http://192.168.233.60/wordpress/index.php

     docker-compose搭建lnmp+wordpress

    1. Docker Compose 环境安装
    1. Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose
    2. #下载
    3. curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    4. 或者直接将compose的包放入 /usr/local/bin/
    5. #安装
    6. chmod +x /usr/local/bin/docker-compose
    7. #查看版本
    8. docker-compose --version

     准备依赖文件:

    1. mkdir /opt/compose_lnmp/
    2. cd /compose_lnmp
    3. nginx mysql php

     在相应的目录内编写Dockerfile文件
    写完相对应的Dockerfile文件后编写docker-compose.yml文件

    1. #定义docker-compose版本,可以是23
    2. version: '3'
    3. #使用services定义服务
    4. services:
    5. #第一个service
    6. nginx:
    7. #设置容器名
    8. container_name: nginx
    9. #使用dockerfile来构建镜像
    10. build:
    11. #指定Dockerfile文件所在位置
    12. context: ./nginx
    13. #指定文件名
    14. dockerfile: Dockerfile
    15. #映射端口
    16. ports:
    17. - 80:80
    18. - 443:443
    19. #设置数据卷挂载
    20. volumes:
    21. - ./nginx/html:/usr/local/nginx/html
    22. #加入网络
    23. networks:
    24. lnmp:
    25. ipv4_address: 172.18.0.10
    26. mysql:
    27. container_name: mysql
    28. build:
    29. context: ./mysql
    30. dockerfile: Dockerfile
    31. ports:
    32. - 3306:3306
    33. networks:
    34. lnmp:
    35. ipv4_address: 172.18.0.20
    36. volumes:
    37. - db-data:/usr/local/mysql
    38. privileged: true
    39. php:
    40. container_name: php
    41. build:
    42. context: ./php
    43. dockerfile: Dockerfile
    44. ports:
    45. - 9000:9000
    46. networks:
    47. lnmp:
    48. ipv4_address: 172.18.0.30
    49. volumes:
    50. - db-data:/usr/local/mysql
    51. - ./nginx/html:/usr/local/nginx/html
    52. depends_on:
    53. - nginx
    54. - mysql
    55. #设置网络为自定义网络
    56. networks:
    57. lnmp:
    58. driver: bridge
    59. ipam:
    60. config:
    61. - subnet: 172.18.0.0/16
    62. volumes:
    63. db-data:

    最后在后台启动 Docker Compose 项目:

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

     随后进入mysql 容器:

    1. docker exec -it mysql /bin/bash
    2. mysql
    3. create database wordpress;
    4. grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
    5. grant all privileges on *.* to 'root'@'%' identified by 'abc123';
    6. flush privileges;

     浏览器访问:

    http://192.168.233.60/wordpress/index.php

  • 相关阅读:
    文举论金:黄金原油全面走势分析策略独家指导
    VMware vCenter Server 6.7安装过程记录
    【动态规划】leetcode 213. 打家劫舍 II
    RK3568-pcie接口
    弹性蛋白酶中英文说明书
    大型网站架构
    LabVIEW下载 安装 和谐 与卸载教程
    MySQL详细学习教程(建议收藏)
    Nacos Config--服务配置
    Using OpenGL in a SFML window
  • 原文地址:https://blog.csdn.net/whtqwq/article/details/133802855