docker實現(xiàn)lnmp負載環(huán)境

本文詳細講解了docker容器搭建lnmp負載均衡的例子

1.安裝mysql

[root@mysql ~]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.22-el7-x86_64.tar.gz
[root@mysql ~]# tar -xf mysql-5.7.22-el7-x86_64.tar.gz 
[root@mysql ~]# mv mysql-5.7.22-el7-x86_64  /usr/local/
[root@mysql ~]# cd /usr/local/
[root@mysql local]# ln -s mysql-5.7.22-el7-x86_64/ mysql
[root@mysql local]# 
[root@mysql local]# cp mysql/support-files/mysql.server /etc/init.d/mysqld
[root@mysql local]# ll /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10576 Jul 29 04:45 /etc/init.d/mysqld
[root@mysql local]# 
[root@mysql local]# useradd mysql
[root@mysql local]# mkdir -p /var/lib/mysql
[root@mysql local]# chown -R mysql.mysql /var/lib/mysql
[root@mysql local]# mkdir -p /var/log/mariadb/
[root@mysql local]# chown -R mysql.mysql /var/log/mariadb/
[root@mysql local]# touch /var/log/mariadb/mariadb.log
[root@mysql local]# chown -R mysql.mysql /var/log/mariadb/
[root@mysql local]# /etc/init.d/mysqld start
[root@mysql local]# mkdir -p /var/run/mariadb/
[root@mysql local]# chown -R mysql.mysql /var/run/mariadb/

結(jié)尾添加下面的環(huán)境變量

[root@mysql local]# vim /etc/profile
export MYSQL=/usr/local/mysql/bin/
export PATH="${MYSQL}:${PATH}"

使環(huán)境變量生效

[root@mysql local]# source /etc/profile

安裝依賴

[root@mysql local]# yum -y install libaio

初始化數(shù)據(jù),黃色部分是密碼

[root@mysql local]# mysqld --initialize
2018-07-29T09:12:33.373161Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-07-29T09:12:33.951747Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-07-29T09:12:34.060407Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-07-29T09:12:34.120200Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 8775432e-930f-11e8-b03c-000c2939e151.
2018-07-29T09:12:34.121440Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-07-29T09:12:34.122642Z 1 [Note] A temporary password is generated for root@localhost: k/lhzl)&z5qK

[root@mysql local]# chown -R mysql.mysql /var/lib/mysql
[root@mysql local]# /etc/init.d/mysqld start
[root@mysql local]# mysqladmin -uroot -p"k/lhzl)&z5qK" password xiaohuang -S /var/lib/mysql/mysql.sock

授權(quán)
mysql> grant all on *.* to root@'%' identified by 'xiaohuang';
Query OK, 0 rows affected, 1 warning (0.00 sec)

2安裝docker

[root@php ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

[root@php ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@php ~]# yum -y install docker-ce
[root@php ~]# systemctl start docker
[root@php ~]# systemctl enable docker

3.安裝docker-compose

[root@php /]# yum -y install epel-release
[root@php /]# yum -y install python-pip
[root@php /]# pip install docker-compose
[root@php /]# docker-compose version

4.創(chuàng)建鏡像

4.1準備環(huán)境

[root@php ~]# mkdir -p /docker/{system,scripts,tmp,runtime,app,code}
[root@php ~]# mkdir -p /docker/system/centos-base/conf/
[root@php ~]# mkdir -p /docker/app-environment/nginx_php/{nginx,php,conf}
[root@php ~]# mkdir -p /docker/app/xiaohuang/{code,conf}

4.2 centos-base的Dockerfile

[root@php ~]# cat /docker/system/centos-base/Dockerfile 
#Docker for CentOS

#base imamge
FROM centos:7

#who
MAINTAINER JY.H

#init base
#RUN yum -y install wget
#RUN yum -y install ntpdate
RUN rm -f /etc/localtime
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#RUN ntpdate cn.pool.ntp.org
#RUN hwclock -w
ADD ./conf/limits.conf /etc/
RUN echo "ulimit -n 65535" >> /etc/profile
RUN echo "ulimit -u 65535" >> /etc/profile
RUN echo "ulimit -d unlimited" >> /etc/profile
RUN echo "ulimit -m unlimited" >> /etc/profile
RUN echo "ulimit -s unlimited" >> /etc/profile
RUN echo "ulimit -t unlimited" >> /etc/profile
RUN echo "ulimit -v unlimited" >> /etc/profile
RUN source /etc/profile

4.2.1 配置最大打開文件數(shù)

[root@php ~]# cat /docker/system/centos-base/conf/limits.conf
* soft noproc 65535
* hard noproc 65535
* soft nofile 10240
* hard nofile 10240

4.3.1配置php-nginx的基礎(chǔ)鏡像Dockerfile

[root@php ~]# vim /docker/app-environment/nginx_php/Dockerfile

#Base image
FROM xiaohuang/centos7:base

#Maintainer
MAINTAINER JY.H

#add user www
RUN useradd -s /sbin/nologin -M www
RUN yum -y install epel-release
RUN yum -y install supervisor
RUN yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel openssl-devel
RUN yum -y install freetype-devel libpng-devel libcurl-devel libxslt-devel gd-devel
RUN yum -y install mhash mcrypt libmcrypt-devel

ADD ./nginx/nginx-1.12.2 /usr/local/nginx
ADD ./php/php-5.6.9 /usr/local/php-5.6.9
RUN ln -s /usr/local/php-5.6.9 /usr/local/php


ADD ./conf/supervisord.conf /etc/supervisord.conf
ADD ./conf/app-supervisor.ini /etc/supervisord.d/

4.3.2配置app-supervisor.ini多進程管理的文件

[root@php ~]# vim /docker/app-environment/nginx_php/conf/app-supervisor.ini
[program:php]
command=/usr/local/php/sbin/php-fpm
process_name=%(program_name)s
autostart=true

[program:nginx]
command=/usr/local/nginx/sbin/nginx
process_name=%(program_name)s
autostart=true
stdout_logfile=/tmp/app.log
stderr_logfile=/tmp/app.err

4.3.3配置supervisord.conf

root@php ~]# vim /docker/app-environment/nginx_php/conf/supervisord.conf
[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; (the path to the socket file)
[supervisord]
logfile=/var/log/supervisor/supervisord.log  ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=true              ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket
[include]
files = supervisord.d/*.ini

4.4.1配置php-nginx的鏡像Dockerfile

[root@php xiaohuang]# vim /docker/app/xiaohuang/Dockerfile 

#Base image
FROM xiaohuang/php-nginx:version-0.0.0

#Maintainer
MAINTAINER bonzi.Hu
ADD ./code/xiaohuang /usr/local/nginx/html/xiaohuang
ADD ./conf/nf/www.xiaohuang.com.conf /us /usr/local/nginx/conf.d/.d/www.xiaohuang.com.conf



CMD
CMD ["/usr/bin/supervisord","-c","/etc/supervisord.conf"]

4.4.2配置容器里的nginx配置文件www.xiaohuang.com.conf

[root@php xiaohuang]# vim /docker/app/xiaohuang/conf/www.xiaohuang.com.conf

server {
    listen       80;
    server_name  www.xiaohuang.com;
    root   html/xiaohuang;

    location / {
       index index.php index.html index.htm;
    }
    location ~ .*\.(php|php5)?$ {
       fastcgi_pass 127.0.0.1:9000;
       fastcgi_index index.php;
       include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
       expires 3650d;
    }
    location ~ .*\.(js|css)?$ {
       expires 365d;
    }
    location ~ ^/images/.*\.(php|php5|sh|pl|py)$ {
            deny all;
    }
    location ~ ^/static/.*\.(php|php5|sh|pl|py)$ {
            deny all;
    }
    location ~ ^/data/.*\.(php|php5|sh|pl|py)$ {
            deny all;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

4.5配置docker-compose的啟動文件

[root@php scripts]# vim docker-compose.yml

version: '2'
services:
xiaohuang-v1:
    image: xiaohuang/php-nginx:version-1.1.1
    restart: always
    container_name: xiaohuang-v1
    ports:
        - “2000:80”
xiaohuang-v2:
    image: xiaohuang/php-nginx:version-1.1.1
    restart: always
    container_name: xiaohuang-v2
    ports:
        - "2001:80"

4.6 創(chuàng)建鏡像

[root@php /]# docker pull centos:7
[root@php /]# docker build -t xiaohuang/centos7:base /usr/my/docker/system/centos-base/
[root@php /]# docker build -t xiaohuang/php-nginx:version-0.0.0 /usr/my/docker/app-environment/nginx_php/
[root@php /]# docker build -t xiaohuang/php-nginx:version-1.1.1 /usr/my/docker/app/xiaohuang/

5.啟動docker-compose

cd /usr/my/docker/scripts/
/usr/bin/docker-compose up -d
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萎津,一起剝皮案震驚了整個濱河市廊营,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌任斋,老刑警劉巖继阻,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異废酷,居然都是意外死亡瘟檩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門澈蟆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墨辛,“玉大人,你說我怎么就攤上這事趴俘《么兀” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵寥闪,是天一觀的道長太惠。 經(jīng)常有香客問我,道長疲憋,這世上最難降的妖魔是什么凿渊? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮缚柳,結(jié)果婚禮上埃脏,老公的妹妹穿的比我還像新娘。我一直安慰自己喂击,他們只是感情好剂癌,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翰绊,像睡著了一般佩谷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上监嗜,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天谐檀,我揣著相機與錄音,去河邊找鬼裁奇。 笑死桐猬,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的刽肠。 我是一名探鬼主播溃肪,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼免胃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了惫撰?” 一聲冷哼從身側(cè)響起羔沙,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厨钻,沒想到半個月后扼雏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡夯膀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年诗充,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诱建。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝴蜓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涂佃,到底是詐尸還是另有隱情励翼,我是刑警寧澤蜈敢,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布辜荠,位于F島的核電站,受9級特大地震影響抓狭,放射性物質(zhì)發(fā)生泄漏伯病。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一否过、第九天 我趴在偏房一處隱蔽的房頂上張望午笛。 院中可真熱鬧,春花似錦苗桂、人聲如沸药磺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽癌佩。三九已至,卻和暖如春便锨,著一層夾襖步出監(jiān)牢的瞬間围辙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工放案, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留姚建,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓吱殉,卻偏偏與公主長得像掸冤,于是被迫代替她去往敵國和親厘托。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 《Docker從入門到實踐》閱讀筆記 原書地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo閱讀 11,389評論 1 39
  • 簡書_我愛你稿湿!認識簡書是在今年的六月中旬催烘。因為本人的身體原因,2017年初與死神擦肩而過缎罢,那段時間總想著隨時有...
    寒樺閱讀 742評論 60 85
  • 那些翻著波紋 收集笑臉和星光的葉子 還是會巴巴念著樹上時 抱琴聲枕月華 等待晨起伸懶腰的光陰 唯有她掌心的露水是真
    沐朝閱讀 142評論 0 3
  • 之前搭建了Sonar 服務(wù)來管理分析代碼伊群,主要用于項目整體分析,不便于開發(fā)時發(fā)現(xiàn)問題策精。后來發(fā)現(xiàn)有個和IDEA集成的...
    同桌的桌閱讀 5,222評論 0 1
  • 我不想 文||與你相識 我不想 從你的視線消失 那些牽魂的熱烈 還在心頭縈繞 我不想 隱藏所有情感 你給的柔情 是...
    與你相識_40fa閱讀 180評論 2 4