东莞网站推广费用,最近的新闻内容,如何做国外销售网站,双辽建设局网站目录 服务器环境
任务需求
服务搭建
Nginx
Mysql
Php
启动 wordpress 服务 服务器环境 容器 操作系统 IP地址 主要软件 nginx CentOS 7 172.20.0.10 Docker-Nginx mysql CentOS 7 172.20.0.20 Docker-Mysql php CentOS 7 172.2…目录 服务器环境
任务需求
服务搭建
Nginx
Mysql
Php
启动 wordpress 服务 服务器环境 容器 操作系统 IP地址 主要软件 nginx CentOS 7 172.20.0.10 Docker-Nginx mysql CentOS 7 172.20.0.20 Docker-Mysql php CentOS 7 172.20.0.30 Docker-php
任务需求 使用 Docker 构建 LNMP 环境并运行 Wordpress 网站平台 限制 Nginx 容器最多使用 500MB 的内存和 1G 的 Swap 限制 Mysql 容器写 /dev/sda 的速率为 10 MB/s 将所有容器进行快照然后将 Docker 镜像打包成 tar 包备份到本地 服务搭建 Nginx 1. 建立工作目录
[rootdocker ~]# mkdir /opt/nginx [rootdocker ~]# cd /opt/nginx [rootdocker nginx]# rz -E rz waiting to receive. #上传 nginx 安装包 nginx-1.12.0.tar.gz [rootdocker nginx]# rz -E rz waiting to receive. #上传 wordpress 服务包 wordpress-4.9.4-zh_CN.tar.gz
2. 编写 Dockerfile 脚本
[rootdocker nginx]# vim Dockerfile FROM centos:7 MAINTAINER this is nginx image xtc RUN yum -y install pcre-devel zlib-devel gcc gcc-c make;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 \ --usernginx \ --groupnginx \ --with-http_stub_status_module;make -j 4 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 VOLUME [ /usr/local/nginx/html/ ] CMD [ /usr/local/nginx/sbin/nginx,-g,daemon off; ] 3. 准备 nginx.conf 配置文件
[rootdocker nginx]# ls Dockerfile nginx-1.12.0.tar.gz nginx.conf wordpress-4.9.4-zh_CN.tar.gz [rootdocker nginx]# egrep -v ^(.)*#(.)*$ nginx.conf | grep -v ^$ worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; charset utf-8; location / { root html; index index.html index.php; } error_page 500 502 503 504 /50x.html; location /50x.html { root html; } location ~ \.php$ { root html; fastcgi_pass 172.20.0.30:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; } } } 4. 生成镜像
[rootdocker nginx]# docker build -t nginx:lnmp . [rootdocker nginx]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx lnmp 35a6404fcfa1 5 seconds ago 522MB centos 7 eeb6ee3f44bd 4 weeks ago 204MB 5. 创建自定义网络
[rootdocker nginx]# docker network create --subnet172.20.0.0/16 --opt com.docker.network.bridge.namedocker1 mynetwork cdc7b80633abf6c1f573528234f024f6088340475acae277d9710f0d2d5dc400 [rootdocker nginx]# docker network ls [rootbenet23 nginx]# ifconfig docker1 docker1: flags4099UP,BROADCAST,MULTICAST mtu 1500 6. 启动镜像容器
[rootbenet23 nginx]# docker run -d --name nginx -p 80:80 -m 500m --memory-swap 1g --net mynetwork --ip 172.20.0.10 nginx:lnmp 24cbedd7982b1cf658cff4efd1ea75a5bfe252b6d01b2a222ed4cde63215479d [rootbenet23 nginx]# docker ps [rootbenet23 nginx]# docker inspect nginx 7.测试
curl http://192.168.90.10:80 Mysql 1. 建立工作目录
[rootbenet23 nginx]# mkdir /opt/mysql [rootbenet23 nginx]# cd /opt/mysql/ [rootbenet23 mysql]# rz -E rz waiting to receive. #传入mysql安装包mysql-boost-5.7.20.tar.gz
2. 编写 Dockerfile [rootdocker mysql]# vim Dockerfile FROM centos:7 MAINTAINER this is mysql image lnmp RUN yum -y install ncurses ncurses-devel bison cmake pcre-devel zlib-devel gcc gcc-c make;useradd -M -s /sbin/nologin mysql 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_CHARSETutf8 \ -DDEFAULT_COLLATIONutf8_general_ci \ -DWITH_EXTRA_CHARSETSall \ -DWITH_INNOBASE_STORAGE_ENGINE1 \ -DWITH_ARCHIVE_STORAGE_ENGINE1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE1 \ -DMYSQL_DATADIR/usr/local/mysql/data \ -DWITH_BOOSTboost \ -DWITH_SYSTEMD1;make -j4;make install ADD my.cnf /etc/my.cnf EXPOSE 3306 RUN chown -R mysql:mysql /usr/local/mysql/;chown mysql:mysql /etc/my.cnf WORKDIR /usr/local/mysql/bin/ RUN ./mysqld \ --initialize-insecure \ --usermysql \ --basedir/usr/local/mysql \ --datadir/usr/local/mysql/data;cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/;systemctl enable mysqld ENV PATH/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH VOLUME [ /usr/local/mysql ] CMD [/usr/sbin/init]
3. 准备 my.cnf 文件
[rootdocker mysql]# vim my.cnf [client] port 3306 socket/usr/local/mysql/mysql.sock [mysqld] user mysql basedir/usr/local/mysql datadir/usr/local/mysql/data port 3306 character-set-serverutf8 pid-file /usr/local/mysql/mysqld.pid socket/usr/local/mysql/mysql.sock bind-address 0.0.0.0 skip-name-resolve max_connections2048 default-storage-engineINNODB max_allowed_packet16M server-id 1 sql_modeNO_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 4. 生成镜像 [rootdocker mysql]# docker build -t mysql:lnmp . [rootdocker mysql]# docker images 5. 启动镜像容器 [rootbenet23 mysql]# docker run --namemysql -d --privileged --device-write-bps /dev/sda:10M -v /sys/fs/cgroup:/sys/fs/cgroup --net mynetwork --ip 172.20.0.20 mysql:lnmp [rootbenet23 mysql]# docker ps -a 6. 验证 mysql [rootbenet23 mysql]# docker exec -it mysql bash [roote75631cda20b bin]# systemctl status mysqld
Php 1. 建立工作目录
[rootbenet23 mysql]# mkdir ../php [rootbenet23 mysql]# cd ../php/ [rootbenet23 php]# rz -E rz waiting to receive. #传入php安装包php-7.1.10.tar.bz2
2. 编写 Dockerfile 脚本 [rootbenet23 php]# vim Dockerfile FROM centos:7 MAINTAINER this is php image xtc 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 配置文件 3.1 php.ini 该配置文件模板位于安装目录的 php-7.1.10/php.ini-development 位置
[rootbenet23 php]# vim php.ini #939行,取消注释修改 date.timezone Asia/Shanghai #1170行,修改 mysqli.default_socket /usr/local/mysql/mysql.sock [rootbenet23 php]# egrep -v ^; php.ini | egrep -v ^$[PHP] engine On short_open_tag Off precision 14 output_buffering 4096 zlib.output_compression Off implicit_flush Off unserialize_callback_func serialize_precision -1 disable_functions disable_classes zend.enable_gc On expose_php On max_execution_time 30 max_input_time 60 memory_limit 128M error_reporting E_ALL display_errors On display_startup_errors On log_errors On log_errors_max_len 1024 ignore_repeated_errors Off ignore_repeated_source Off report_memleaks On track_errors On html_errors On variables_order GPCS request_order GP register_argc_argv Off auto_globals_jit On post_max_size 8M auto_prepend_file auto_append_file default_mimetype text/html default_charset UTF-8 doc_root user_dir enable_dl Off file_uploads On upload_max_filesize 2M max_file_uploads 20 allow_url_fopen On allow_url_include Off default_socket_timeout 60 [CLI Server] cli_server.color On [Date] date.timezone Asia/Shanghai [filter] [iconv] [intl] [sqlite3] [Pcre] [Pdo] [Pdo_mysql] pdo_mysql.cache_size 2000 pdo_mysql.default_socket [Phar] [mail function] SMTP localhost smtp_port 25 mail.add_x_header On [SQL] sql.safe_mode Off [ODBC] odbc.allow_persistent On odbc.check_persistent On odbc.max_persistent -1 odbc.max_links -1 odbc.defaultlrl 4096 odbc.defaultbinmode 1 [Interbase] ibase.allow_persistent 1 ibase.max_persistent -1 ibase.max_links -1 ibase.timestampformat %Y-%m-%d %H:%M:%S ibase.dateformat %Y-%m-%d ibase.timeformat %H:%M:%S [MySQLi] mysqli.max_persistent -1 mysqli.allow_persistent On mysqli.max_links -1 mysqli.cache_size 2000 mysqli.default_port 3306 mysqli.default_socket /usr/local/mysql/mysql.sock mysqli.default_host mysqli.default_user mysqli.default_pw mysqli.reconnect Off [mysqlnd] mysqlnd.collect_statistics On mysqlnd.collect_memory_statistics On [OCI8] [PostgreSQL] pgsql.allow_persistent On pgsql.auto_reset_persistent Off pgsql.max_persistent -1 pgsql.max_links -1 pgsql.ignore_notice 0 pgsql.log_notice 0 [bcmath] bcmath.scale 0 [browscap] [Session] session.save_handler files session.use_strict_mode 0 session.use_cookies 1 session.use_only_cookies 1 session.name PHPSESSID session.auto_start 0 session.cookie_lifetime 0 session.cookie_path / session.cookie_domain session.cookie_httponly session.serialize_handler php session.gc_probability 1 session.gc_divisor 1000 session.gc_maxlifetime 1440 session.referer_check session.cache_limiter nocache session.cache_expire 180 session.use_trans_sid 0 session.sid_length 26 session.trans_sid_tags ahref,areahref,framesrc,form session.sid_bits_per_character 5 [Assertion] zend.assertions 1 [COM] [mbstring] [gd] [exif] [Tidy] tidy.clean_output Off [soap] soap.wsdl_cache_enabled1 soap.wsdl_cache_dir/tmp soap.wsdl_cache_ttl86400 soap.wsdl_cache_limit 5 [sysvshm] [ldap] ldap.max_links -1 [mcrypt] [dba] [opcache] [curl] [openssl] 3.2 php-fpm.conf 该配置文件位于 /usr/local/php/etc/php-fpm.conf.default
[rootdocker php]# vim php-fpm.conf #17行删除注释符号“;” pid run/php-fpm.pid [rootdocker php]# egrep -v ^; php-fpm.conf | egrep -v ^$ [global] pid run/php-fpm.pid include/usr/local/php/etc/php-fpm.d/*.conf 3.3 www.conf 该配置文件位于 usr/local/php/etc/php-fpm.d/www.conf.default
[rootdocker php]# vim www.conf #23、24行修改用户和组 user nginx group nginx #36行修改监听IP和端口为容器IP:9000端口 listen 172.20.0.30:9000 [rootdocker php]# egrep -v ^; www.conf | egrep -v ^$ [www] user nginx group nginx listen 172.20.0.30:9000 pm dynamic pm.max_children 5 pm.start_servers 2 pm.min_spare_servers 1 pm.max_spare_servers 3
4. 生成镜像 [rootbenet23 php]# docker build -t php:lnmp . [rootbenet23 php]# docker images 5. 启动镜像容器
[rootbenet23 php]# docker run -itd --name php --net mynetwork --ip 172.20.0.30 -p 9000:9000 --volumes-from nginx --volumes-from mysql php:lnmp 38c3d71f3e4afcf060cb471ecd9c409d7f236b651bec752139cd5fd32916ee77 [rootbenet23 php]# docker ps 6. 验证 php
[rootbenet23 php]# docker exec -it php bash [root03e251af5164 php-7.1.10]# ps -aux
启动 wordpress 服务 1. mysql 授权 进入 mysql 容器
[roote75631cda20b bin]# 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 123456; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql grant all privileges on *.* to root% identified by 123456; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql flush privileges; Query OK, 0 rows affected (0.00 sec) 2. 浏览器访问测试 访问 http://192.168.90.10/wordpress/index.php