免费资源网 – https://freexyz.cn/
目录一、实验环境二、安装docker源三、安装docker四、部署Nginx和PHP1、上传/解压软件包和配置文件2、创建dockerfile文件3、构建镜像4、创建容器并运行5、开启服务五、部署MySQL1、创建MySQL的dockerfile文件2、构建镜像3、创建容器并运行4、启动服务5、数据库授权一、实验环境
系统:centos7 ip:192.168.238.133
#关闭防火墙 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# setenforce 0 #添加dns [root@localhost ~]# cat /etc/resolv.conf nameserver 114.114.114.114 #修改主机名 [root@localhost ~]# hostnamectl set-hostname docker-lnmp [root@localhost ~]# su二、安装docker源
#安装依赖环境 [root@docker-lnmp ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 #安装阿里docker源 [root@docker-lnmp ~]# yum-config-manager –add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo三、安装docker
[root@docker-lnmp ~]# yum install -y docker-ce #安装社区版 [root@docker-lnmp ~]# systemctl enable docker #设置开机自启 Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. [root@docker-lnmp ~]# systemctl start docke #开启服务 #创建dockerfile目录 [root@docker-lnmp ~]# mkdir docker && cd docker #创建MySQL和Nginx的dockerfile目录 [root@docker-lnmp docker]# mkdir nginx mysql四、部署Nginx和PHP
1、上传/解压软件包和配置文件
#解压软件包 [root@docker-lnmp nginx]# tar zxvf wordpress-4.9.4-zh_CN.tar.gz [root@docker-lnmp nginx]# tar zxvf nginx-1.12.2.tar.gz [root@docker-lnmp nginx]# tar zxvf libmcrypt-2.5.7.tar.gz [root@docker-lnmp nginx]# tar zxvf php-5.5.38.tar.gz2、创建dockerfile文件
[root@docker-lnmp nginx]# vim Dockerfile FROM docker.io/centos:7 RUN yum -y update RUN yum -y install gcc gcc-c++ openssl-devel openssl autoconf cmake autoconf zlib zlib-devel libtool pcre pcre-devel wget net-tools make RUN groupadd -g 900 nginx && useradd nginx -g nginx -s /sbin/nologin FROM docker.io/centos:7 RUN yum -y update RUN yum -y install gcc gcc-c++ openssl-devel openssl autoconf cmake autoconf zlib zlib-devel libtool pcre pcre-devel wget net-tools make RUN groupadd -g 900 nginx && useradd nginx -g nginx -s /sbin/nologin ADD nginx-1.12.2 nginx-1.12.2 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 RUN cd /nginx-1.12.2/ && make && make install RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ RUN sed -i 1afastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; /usr/local/nginx/conf/fastcgi_params ADD nginx.conf /usr/local/nginx/conf/ ADD wordpress /usr/local/nginx/html/wordpress ADD wp-config.php /usr/local/nginx/html/wordpress 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 ADD libmcrypt-2.5.7 libmcrypt-2.5.7 RUN cd libmcrypt-2.5.7/&& ./configure –prefix=/usr/local/libmcrypt && make && make install ADD php-5.5.38 php-5.5.38 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 RUN cd php-5.5.38 && cp php.ini-production /etc/php.ini RUN cd /php-5.5.38 && cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm RUN chmod +x /etc/init.d/php-fpm && chkconfig –add php-fpm && chkconfig php-fpm on RUN cp /usr/local/php5.5/etc/php-fpm.conf.default /usr/local/php5.5/etc/php-fpm.conf RUN sed -i s*;pid = run/php-fpm.pid*pid = run/php-fpm.pid*g /usr/local/php5.5/etc/php-fpm.conf RUN sed -i s/user = nobody/user = nginx/g /usr/local/php5.5/etc/php-fpm.conf RUN sed -i s/group = nobody/group = nginx/g /usr/local/php5.5/etc/php-fpm.conf RUN sed -i s/pm.max_children = 5/pm.max_children = 50/g /usr/local/php5.5/etc/php-fpm.conf RUN sed -i s/pm.start_servers = 2/pm.start_servers = 5/g /usr/local/php5.5/etc/php-fpm.conf RUN sed -i s/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g /usr/local/php5.5/etc/php-fpm.conf RUN sed -i s/pm.max_spare_servers = 3/pm.max_spare_servers = 30/g /usr/local/php5.5/etc/php-fpm.conf EXPOSE 9000 EXPOSE 803、构建镜像
[root@docker-lnmp nginx]# docker build -t “centos:nginx-php” .查看镜像列表
4、创建容器并运行
[root@docker-lnmp nginx]# docker run -dit -p 80:80 -m 500m –memory-swap 1G 3efb4e2c79b5 /bin/bash 49c5b69ce7012579f4b024ef6be88ff5de8057ccc7f81583fcf04f1c3ec6a79c查看容器列表
5、开启服务
[root@docker-lnmp nginx]# docker exec -it 49c5b69ce701 /bin/bash [root@49c5b69ce701 /]# /etc/init.d/php-fpm start && nginx [root@49c5b69ce701 /]# netstat -antp | grep php tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 32/php-fpm: master [root@49c5b69ce701 /]# netstat -antp | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 39/nginx: master pr验证一下:
五、部署MySQL
1、创建MySQL的dockerfile文件
[root@docker-lnmp mysql]# vim Dockerfile FROM docker.io/centos:7 RUN yum -y install gcc gcc-c++ make autoconf make cmake wget RUN groupadd mysql; useradd -r -M -u 3306 -s /sbin/nologin -g mysql mysql RUN mkdir /usr/local/mysql; mkdir /data/mysql -pv RUN yum install gcc gcc-c++ ncurses-devel bison bison-devel -y RUN wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz RUN tar xf mysql-5.6.29.tar.gz -C /usr/local/src/ WORKDIR /usr/local/src/mysql-5.6.29 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 RUN chown -R root:mysql /usr/local/mysql/ && chown -R mysql:mysql /data/mysql RUN chmod 755 /usr/local/src/mysql-5.6.29/scripts/mysql_install_db.sh RUN /usr/local/src/mysql-5.6.29/scripts/mysql_install_db.sh –basedir=/usr/local/mysql –datadir=/data/mysql –no-defaults –user=mysql RUN cp /usr/local/src/mysql-5.6.29/support-files/my-default.cnf /etc/my.cnf RUN cp /usr/local/src/mysql-5.6.29/support-files/mysql.server /etc/init.d/mysqld RUN chmod 775 /etc/init.d/mysqld && /etc/init.d/mysqld start RUN echo -e #!/bin/bashnexport PATH=$PATH:/usr/local/mysql/bin >/etc/profile.d/mysql.sh RUN source /etc/profile EXPOSE 33062、构建镜像
[root@docker-lnmp mysql]# docker build -t “centos:mysql-5.6” .查看镜像列表
3、创建容器并运行
[root@docker-lnmp mysql]# docker run -dit -p 3306:3306 –device-write-bps /dev/sda:10M 704e5b978518 /bin/bash 960645a296e3e8795c344a8037b0641f8b5baf8e2214453214359071480c379d查看容器列表
4、启动服务
[root@docker-lnmp mysql]# docker exec -it 960645a296e3 /bin/bash [root@960645a296e3 mysql-5.6.29]# /etc/init.d/mysqld start Starting MySQL………… SUCCESS!5、数据库授权
#修改密码 [root@960645a296e3 mysql-5.6.29]# mysql -uroot -p123456 Warning: Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user root@localhost (using password: YES) [root@960645a296e3 mysql-5.6.29]# mysqladmin -u root -p password Enter password: New password: Confirm new password: #授权 [root@960645a296e3 mysql-5.6.29]# mysql -uroot -p123456 mysql> create database wordpress default charset utf8 COLLATE utf8_general_ci; #创建wordpress表 Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on wordpress.* to wordpress@% identified by 123456 with grant option; #授权 Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; #刷新权限 Query OK, 0 rows affected (0.01 sec)访问:http://192.168.238.133/wordpress/index.php
免费资源网 – https://freexyz.cn/
© 版权声明
THE END
暂无评论内容