docker部署lnmp-wordpress

代码 代码 1412 人阅读 | 0 人回复

<
目次



1、尝试情况

  1. 体系:centos7 ip:192.168.238.133
复造代码
  1. #封闭防水墙
  2. [root@localhost ~]# systemctl stop firewalld
  3. [root@localhost ~]# systemctl disable firewalld
  4. [root@localhost ~]# setenforce 0
  5. #增加dns
  6. [root@localhost ~]# cat /etc/resolv.conf
  7. nameserver 114.114.114.114
  8. #修正主机名
  9. [root@localhost ~]# hostnamectl set-hostname docker-lnmp
  10. [root@localhost ~]# su
复造代码
2、装置docker源

  1. #装置依靠情况
  2. [root@docker-lnmp ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
  3. #装置阿里docker源
  4. [root@docker-lnmp ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复造代码
3、装置docker

  1. [root@docker-lnmp ~]# yum install -y docker-ce #装置社区版
  2. [root@docker-lnmp ~]# systemctl enable docker #设置开机自启
  3. Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
  4. [root@docker-lnmp ~]# systemctl start docke #开启效劳
  5. #创立dockerfile目次
  6. [root@docker-lnmp ~]# mkdir docker && cd docker
  7. #创立MySQL战Nginx的dockerfile目次
  8. [root@docker-lnmp docker]# mkdir nginx mysql
复造代码
150541mgm18jq49c1qagiq.png

4、布置Nginx战PHP

1、上传/解压硬件包战设置文件

150542hbemqx6ew48v8v9q.png

  1. #解压硬件包
  2. [root@docker-lnmp nginx]# tar zxvf wordpress-4.9.4-zh_CN.tar.gz
  3. [root@docker-lnmp nginx]# tar zxvf nginx-1.12.2.tar.gz
  4. [root@docker-lnmp nginx]# tar zxvf libmcrypt-2.5.7.tar.gz
  5. [root@docker-lnmp nginx]# tar zxvf php-5.5.38.tar.gz
复造代码
2、创立dockerfile文件

  1. [root@docker-lnmp nginx]# vim Dockerfile
  2. FROM docker.io/centos:7
  3. RUN yum -y update
  4. RUN yum -y install gcc gcc-c++ openssl-devel openssl autoconf cmake autoconf zlib zlib-devel libtool pcre pcre-devel wget net-tools make
  5. RUN groupadd  -g 900 nginx && useradd nginx -g nginx -s /sbin/nologin
  6. FROM docker.io/centos:7
  7. RUN yum -y update
  8. RUN yum -y install gcc gcc-c++ openssl-devel openssl autoconf cmake autoconf zlib zlib-devel libtool pcre pcre-devel wget net-tools make
  9. RUN groupadd  -g 900 nginx && useradd nginx -g nginx -s /sbin/nologin
  10. ADD nginx-1.12.2 nginx-1.12.2
  11. RUN cd /nginx-1.12.2/ && ./configure --prefix=/usr/local/nginx --with-http_dav_module  --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx
  12. RUN cd /nginx-1.12.2/ && make && make install
  13. RUN ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/
  14. RUN sed -i &#39;1afastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;&#39; /usr/local/nginx/conf/fastcgi_params
  15. ADD nginx.conf /usr/local/nginx/conf/
  16. ADD wordpress /usr/local/nginx/html/wordpress
  17. ADD wp-config.php /usr/local/nginx/html/wordpress
  18. RUN yum -y install gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel  openssl automake make autoconf libtool zlib-devel make pcre-devel wget net-tools
  19. ADD libmcrypt-2.5.7 libmcrypt-2.5.7
  20. RUN cd libmcrypt-2.5.7/&& ./configure --prefix=/usr/local/libmcrypt && make && make install
  21. ADD php-5.5.38 php-5.5.38
  22. RUN cd php-5.5.38/ && ./configure --prefix=/usr/local/php5.5 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
  23. RUN cd php-5.5.38 && cp php.ini-production /etc/php.ini
  24. RUN cd /php-5.5.38 && cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  25. RUN chmod +x /etc/init.d/php-fpm && chkconfig --add php-fpm && chkconfig php-fpm on
  26. RUN cp /usr/local/php5.5/etc/php-fpm.conf.default  /usr/local/php5.5/etc/php-fpm.conf
  27. RUN sed -i &#39;s*;pid = run/php-fpm.pid*pid = run/php-fpm.pid*g&#39; /usr/local/php5.5/etc/php-fpm.conf
  28. RUN sed -i &#39;s/user = nobody/user = nginx/g&#39; /usr/local/php5.5/etc/php-fpm.conf
  29. RUN sed -i &#39;s/group = nobody/group = nginx/g&#39; /usr/local/php5.5/etc/php-fpm.conf
  30. RUN sed -i &#39;s/pm.max_children = 5/pm.max_children = 50/g&#39; /usr/local/php5.5/etc/php-fpm.conf
  31. RUN sed -i &#39;s/pm.start_servers = 2/pm.start_servers = 5/g&#39; /usr/local/php5.5/etc/php-fpm.conf
  32. RUN sed -i &#39;s/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g&#39; /usr/local/php5.5/etc/php-fpm.conf
  33. RUN sed -i &#39;s/pm.max_spare_servers = 3/pm.max_spare_servers = 30/g&#39; /usr/local/php5.5/etc/php-fpm.conf
  34. EXPOSE 9000
  35. EXPOSE 80
复造代码
3、构建镜像

  1. [root@docker-lnmp nginx]# docker build -t "centos:nginx-php" .
复造代码
检察镜像列表
150542qii1zkijbt7sa1k2.png

4、创立容器并运转

  1. [root@docker-lnmp nginx]# docker run -dit -p 80:80 -m 500m --memory-swap 1G 3efb4e2c79b5 /bin/bash
  2. 49c5b69ce7012579f4b024ef6be88ff5de8057ccc7f81583fcf04f1c3ec6a79c
复造代码
检察容器列表
150542iy9979bifb6e0zgy.png

5、开启效劳

  1. [root@docker-lnmp nginx]# docker exec -it 49c5b69ce701 /bin/bash
  2. [root@49c5b69ce701 /]# /etc/init.d/php-fpm start && nginx
  3. [root@49c5b69ce701 /]# netstat -antp | grep php
  4. tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      32/php-fpm: master  
  5. [root@49c5b69ce701 /]# netstat -antp | grep nginx
  6. tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      39/nginx: master pr
复造代码
考证一下:
150542ssq1sdskbhwwbbqq.jpg

5、布置MySQL

1、创立MySQL的dockerfile文件

  1. [root@docker-lnmp mysql]# vim Dockerfile
  2. FROM docker.io/centos:7
  3. RUN yum -y install gcc gcc-c++ make autoconf make cmake wget
  4. RUN groupadd mysql; useradd -r -M -u 3306 -s /sbin/nologin -g mysql mysql
  5. RUN mkdir /usr/local/mysql; mkdir /data/mysql -pv
  6. RUN yum install gcc gcc-c++ ncurses-devel bison bison-devel -y
  7. RUN wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz
  8. RUN tar xf mysql-5.6.29.tar.gz -C /usr/local/src/
  9. WORKDIR /usr/local/src/mysql-5.6.29
  10. RUN cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH-MYSQLD-LDFLAGS=-all-static -DWITH-CLIENT-LD-FLAGS=-all-static -DWITH_DEBUG=0 && gmake && gmake install
  11. RUN chown -R root:mysql /usr/local/mysql/ && chown -R mysql:mysql /data/mysql
  12. RUN chmod 755 /usr/local/src/mysql-5.6.29/scripts/mysql_install_db.sh
  13. RUN /usr/local/src/mysql-5.6.29/scripts/mysql_install_db.sh --basedir=/usr/local/mysql --datadir=/data/mysql --no-defaults --user=mysql
  14. RUN cp /usr/local/src/mysql-5.6.29/support-files/my-default.cnf  /etc/my.cnf
  15. RUN cp /usr/local/src/mysql-5.6.29/support-files/mysql.server  /etc/init.d/mysqld
  16. RUN chmod 775 /etc/init.d/mysqld && /etc/init.d/mysqld start
  17. RUN echo -e &#39;#!/bin/bash\nexport PATH=$PATH:/usr/local/mysql/bin&#39; >/etc/profile.d/mysql.sh
  18. RUN source /etc/profile
  19. EXPOSE 3306
复造代码
2、构建镜像

  1. [root@docker-lnmp mysql]# docker build -t "centos:mysql-5.6" .
复造代码
检察镜像列表
150543cvzrrcvpd5codmv4.png

3、创立容器并运转

  1. [root@docker-lnmp mysql]# docker run -dit -p 3306:3306 --device-write-bps /dev/sda:10M 704e5b978518 /bin/bash
  2. 960645a296e3e8795c344a8037b0641f8b5baf8e2214453214359071480c379d
复造代码
检察容器列表
150543nhozhr8rbdp6s5b4.png

4、启动效劳

  1. [root@docker-lnmp mysql]# docker exec -it 960645a296e3 /bin/bash
  2. [root@960645a296e3 mysql-5.6.29]# /etc/init.d/mysqld start
  3. Starting MySQL............ SUCCESS!
复造代码
5、数据库受权

  1. #修正暗码
  2. [root@960645a296e3 mysql-5.6.29]# mysql -uroot -p123456
  3. Warning: Using a password on the command line interface can be insecure.
  4. ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)
  5. [root@960645a296e3 mysql-5.6.29]# mysqladmin -u root -p password
  6. Enter password:
  7. New password:
  8. Confirm new password:
  9. #受权
  10. [root@960645a296e3 mysql-5.6.29]# mysql -uroot -p123456
  11. mysql> create database wordpress default charset utf8 COLLATE utf8_general_ci; #创立wordpress表
  12. Query OK, 1 row affected (0.00 sec)
  13. mysql> grant all privileges on wordpress.*  to &#39;wordpress&#39;@&#39;%&#39; identified by &#39;123456&#39; with grant option; #受权
  14. Query OK, 0 rows affected (0.00 sec)
  15. mysql> flush privileges; #革新权限
  16. Query OK, 0 rows affected (0.01 sec)
复造代码
会见:http://192.168.238.133/wordpress/index.php
150543ou11caaz0uxcn3x3.jpg


免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则