亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 56046 | 回復(fù): 2
打印 上一主題 下一主題

Dockerfile分離構(gòu)建LNMP環(huán)境部署wordpress [復(fù)制鏈接]

論壇徽章:
1
15-16賽季CBA聯(lián)賽之同曦
日期:2017-01-17 18:19:30
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2017-06-22 15:24 |只看該作者 |倒序?yàn)g覽
最近忙著寫自己的項(xiàng)目,也把一個(gè)站點(diǎn)的bbs論壇打算遷移到Docker中,測(cè)試沒發(fā)現(xiàn)啥大問題。在單臺(tái)上面的架構(gòu)如下;(往后我們也是要講到compose和swarm調(diào)度的慢慢來)


1、首先我們先安裝一下docker,好多人都發(fā)現(xiàn)國(guó)內(nèi)用yum安裝有各種問題;這里我們用國(guó)內(nèi)的https://www.daocloud.io.登錄后注冊(cè),然后點(diǎn)擊下載。里面有提示,我們點(diǎn)擊Linxu安裝然后復(fù)制代碼執(zhí)行到shell上即可。
[root@test nginx]# curl -sSL https://get.daocloud.io/docker | sh

2、安裝好之后,安裝dockhub加速器,點(diǎn)擊加速器,復(fù)制代碼粘貼到shell.
  1. [root@test nginx]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://681a96df.m.daocloud.io
  2. {"registry-mirrors": ["http://681a96df.m.daocloud.io"],
  3.     "live-restore": true
  4. }
  5. Success.
  6. You need to restart docker to take effect: sudo systemctl restart docker
復(fù)制代碼
##執(zhí)行腳本,主要是把倉(cāng)庫(kù)地址寫到daemon.json文件下。
  1. [root@test nginx]# cat /etc/docker/daemon.json
  2. {"registry-mirrors": ["http://681a96df.m.daocloud.io"],
  3.     "live-restore": true
  4. }
復(fù)制代碼
3、準(zhǔn)備工作都已經(jīng)完成了,接下來我們來構(gòu)建一下dockerfile在三個(gè)目錄下,看下目錄結(jié)構(gòu):
  1. [root@test test]# tree -L 2 --charset ASCII
  2. |-- mysql
  3. |   |-- Dockerfile
  4. |   |-- epel-6.repo
  5. |   |-- my.cnf
  6. |   `-- startup.sh
  7. |-- nginx
  8. |   |-- Dockerfile
  9. |   |-- nginx-1.11.10
  10. |   |-- nginx-1.11.10.tar.gz
  11. |   |-- nginx.conf
  12. |   `-- nginx_default.conf
  13. `-- php-fpm
  14.     |-- Centos-6.repo
  15.     |-- Dockerfile
  16.     |-- epel-6.repo
  17.     |-- php-5.5.38
  18.     `-- php-5.5.38.tar.gz
復(fù)制代碼
4、看一下nginx 的 Dockerfile:
  1. [root@test nginx]# cat Dockerfile
  2. #lnmp centos 6.0
  3. from centos:centos6
  4. MAINTAINER xiaoluo <xiaoluo@test.com>
  5. ENV APP_DIR /web
  6. add nginx-1.11.10 /nginx-1.11.10
  7. RUN yum -y groupinstall "Development Tools" "Server Platform Deveopment"
  8. RUN yum -y install openssl-devel pcre-devel
  9. RUN useradd nginx -s /sbin/nologin
  10. RUN cd /nginx-1.11.10 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module  --with-pcre && make && make install
  11. RUN mkdir /usr/local/nginx/conf/vhosts
  12. RUN mkdir /var/log/nginx
  13. ADD nginx.conf /usr/local/nginx/conf/nginx.conf
  14. ADD nginx_default.conf /usr/local/nginx/conf/vhosts/default.conf
  15. EXPOSE 80
  16. CMD ["/usr/local/nginx/sbin/nginx"]
復(fù)制代碼
##nginx 相關(guān)php配置:
  1. [root@test nginx]# cat nginx_default.conf
  2. server {
  3.     listen       80 default_server;
  4.     server_name  localhost;
  5.     #charset koi8-r;
  6.     location / {
  7.         root   /web;
  8.         index  index.php index.html index.htm;
  9.     }
  10.     # redirect server error pages to the static page /50x.html
  11.     #
  12.     error_page   500 502 503 504  /50x.html;
  13.     location = /50x.html {
  14.         root   APP_DIR;
  15.     }
  16.     # Disable nginx log write favicon.ico
  17.     location = /favicon.ico {
  18.     log_not_found off;
  19.     access_log off;
  20.         }
  21.     # pass the PHP scripts to FastCGI server listening on port 9000
  22.     #
  23.     location ~ \.php$ {
  24.         root           /web;
  25.         fastcgi_pass   php:9000;
  26.         #fastcgi_pass  unix:/tmp/php-fpm.sock;
  27.         fastcgi_index  index.php;
  28.         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  29.         include        fastcgi_params;
  30.     }
  31. }
復(fù)制代碼
###php:9000是通過后面的--link 容器之間互聯(lián)指定
5、開始構(gòu)建nginx鏡像:
  1. [root@test nginx]# docker build -t lnmp/nginx:1.0 .
復(fù)制代碼
##查看是否生成鏡像:
  1. [root@test nginx]# docker images
  2. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
  3. lnmp/nginx          1.0                 5f5d4169189d        4 minutes ago       669 MB
復(fù)制代碼
6、開始構(gòu)建php鏡像:
  1. [root@test php-fpm]# cat Dockerfile
  2. from centos:centos6
  3. ADD Centos-6.repo /etc/yum.repos.d/CentOS-Base.repo
  4. ADD epel-6.repo /etc/yum.repos.d/epel.repo
  5. add php-5.5.38 /php-5.5.38
  6. RUN yum -y groupinstall  "Desktop Platform Development"
  7. RUN yum -y install libmcrypt-devel bzip2-devel gcc openssl-devel php-mcrypt libmcrypt
  8. RUN cd /php-5.5.38 && ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-mcrypt  --with-bz2 --enable-fpm --with-gd && make && make install
  9. RUN cp /php-5.5.38/php.ini-production  /usr/local/php/etc/php.ini
  10. RUN mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
  11. RUN useradd -M -s /sbin/nologin php
  12. RUN sed -i -e 's\;pid = run/php-fpm.pid\pid = run/php-fpm.pid\g' -e 's\nobody\php\g' -e 's\listen = 127.0.0.1:9000\listen = 0.0.0.0:9000\g' /usr/local/php/etc/php-fpm.conf
  13. RUN sed -i 's\;daemonize = yes\daemonize = no\g' /usr/local/php/etc/php-fpm.conf
  14. EXPOSE 9000
  15. CMD ["/usr/local/php/sbin/php-fpm"]
復(fù)制代碼
7、開始構(gòu)建php鏡像:
  1. [root@test php-fpm]# docker build -t lnmp/php:1.0 .
復(fù)制代碼
8、構(gòu)建mysql鏡像的Dockerfile:
  1. [root@test mysql]# cat Dockerfile
  2. FROM centos:centos6  
  3. MAINTAINER xiaoluo "18878774@163.com"  
  4. RUN yum install -y mysql-server mysql  
  5. ADD ./startup.sh /opt/startup.sh
  6. RUN chmod +x /opt/startup.sh
  7. EXPOSE 3306
  8. CMD ["/bin/bash","/opt/startup.sh"]
復(fù)制代碼
##啟動(dòng)腳本:
  1. [root@test mysql]# cat startup.sh
  2. #!/bin/bash
  3. if [ ! -f /var/lib/mysql/ibdata1 ]; then
  4.         mysql_install_db
  5.         /usr/bin/mysqld_safe &
  6.         sleep 10s
  7.         mysql -e "grant all privileges on *.* to 'root'@'%' identified by '123456'; FLUSH PRIVILEGES;"
  8.         killall mysqld
  9.         sleep 10s
  10. fi
  11. /usr/bin/mysqld_safe
復(fù)制代碼
**正常啟動(dòng)的時(shí)候,是沒有問題的;當(dāng)時(shí)當(dāng)我們用-v做持久化的時(shí)候,好像說用戶就失去對(duì)/var/lib/mysql的控制權(quán),所以啟動(dòng)的時(shí)候我們要判斷初始化才可以用-v來持久化相關(guān)目錄,這個(gè)地方之前搞了好久就是掛不起來,后面原來是這個(gè)地方。

9、開始構(gòu)建mysql鏡像:
  1. [root@test mysql]# docker build -t lnmp/mysql:1.0 .
復(fù)制代碼
10、下面我們開始啟動(dòng)相關(guān)容器:
  1. [root@test web]# docker run -dit --name php -v /web:/web lnmp/php:1.0
  2. [root@test web]# docker run -dit --name web -p 80:80 -v /web:/web --link php:php lnmp/nginx:1.0
  3. [root@test web]#docker run -dit --name mysql -p 3306:3306 -v /opt/data:/var/lib/mysql lnmp/mysql:1.0
  4. #####
  5. [root@test mysql]# docker ps
  6. CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                    NAMES
  7. 3527cddb4c50        lnmp/mysql:1.0      "/bin/bash /opt/st..."   4 seconds ago        Up 3 seconds        0.0.0.0:3306->3306/tcp   mysql
  8. fab93953c438        lnmp/nginx:1.0      "/usr/local/nginx/..."   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp       web
  9. d5854337c10b        lnmp/php:1.0        "/usr/local/php/sb..."   3 minutes ago        Up 2 minutes        9000/tcp
復(fù)制代碼
              php
##可以看到我們已經(jīng)都啟動(dòng)了所有的容器了。

11、接下來我們登錄一下mysql.創(chuàng)建一下wordpress使用的數(shù)據(jù)庫(kù):
  1. [root@test mysql]# mysql -uroot -p123456 -h 192.168.63.200
  2. MySQL [(none)]> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;
  3. Query OK, 1 row affected (0.00 sec)
復(fù)制代碼
12、然后我們把wordpress代碼放到我們掛載的本地/web目錄下面:
  1. [root@test web]# wget https://cn.wordpress.org/wordpress-4.7.2-zh_CN.tar.gz
復(fù)制代碼

#然后解壓出來。我們直接訪問一下當(dāng)前主機(jī)的IP地址:


直接往下走注冊(cè)即可:



##到此在Docker 分離下安裝wordpress已經(jīng)完成,但是我們要思考一個(gè)問題,就是有沒有更好的方法統(tǒng)一編排一下這些容器呢,給容器更好的分組管理:可以留意一下docker-compose,在1.13之后更是結(jié)合棧來實(shí)現(xiàn)跨主機(jī)編排。

##還有一個(gè)就是如何給這些容器做成集群管理,保證節(jié)點(diǎn)的高可用。和資源監(jiān)控調(diào)度呢?梢钥匆幌1.12之后的docker swarm,構(gòu)建集群非常簡(jiǎn)單。

論壇徽章:
1
黑曼巴
日期:2017-11-27 16:06:48
2 [報(bào)告]
發(fā)表于 2018-01-03 09:39 |只看該作者
docker-compose
  1. version: '2'

  2. services:
  3.   db:
  4.     image: reg.smartcourt.cn/tools/mysql
  5.     environment:
  6.       - MYSQL_ROOT_PASSWORD=mypass
  7.     volumes:
  8.       - /data/app/wordpress/dbdata:/var/lib/mysql
  9.       - /usr/bin/rz:/usr/bin/rz
  10.       - /usr/bin/sz:/usr/bin/sz

  11.   wp:
  12.     image: reg.smartcourt.cn/tools/wordpress
  13.     environment:
  14.       - WORDPRESS_DB_HOST=db
  15.       - WORDPRESS_DB_PASSWORD=mypass
  16.     volumes:
  17.       - /data/app/wordpress/wpdata:/var/www/html
  18.     ports:
  19.       - 8101:80
復(fù)制代碼

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2018-07-30 15:36 |只看該作者
需要租用服務(wù)器可以聯(lián)系 小何 2880269166  
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP