docker-compose一鍵解決環(huán)境困擾

上一篇利用 不同的命令來構(gòu)建 nginx紧阔,mysql,php鏡像 和 容器续担。 這樣做比較麻煩擅耽,也很容易出錯(cuò),參考文末(docker搭建lnmp(一))物遇,當(dāng)然可以寫入 sh腳本來執(zhí)行乖仇。但是可以通過 docker-compose 來達(dá)到效果,管理起來更加簡(jiǎn)單方便询兴。

docker-compose安裝

github地址:https://github.com/docker/compose

curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

目錄結(jié)構(gòu)

lemon@lemon:~/docker$ tree
.
├── docker-compose.yml
├── mysql
│   └── dockerfile
├── nginx
│   ├── conf
│   │   ├── nginx.conf
│   │   └── vhost
│   ├── dockerfile
└── php7
    ├── conf
    │   └── php.ini
    └── dockerfile

編寫yml文件

version : '3'
services :
   mysql :
     build :
        context : ~/docker/mysql
        dockerfile : dockerfile
     ports :
        - "3306:3306"
     volumes :
        - ~/docker/mysql/data:/var/lib/mysql
     #初始密碼
     environment :
        - MYSQL_ROOT_PASSWORD=123456
     container_name : mysql
     restart : always   
   php7 :
     build :
        context : ~/docker/php7
        dockerfile : dockerfile
     ports :
        - "9000:9000"
     volumes :
        - ~/web:/usr/local/nginx/html
        - ~/docker/php7/conf/php.ini:/usr/local/php7/lib/php.ini:ro
     container_name : php7
     links :
        - mysql
     restart : always
   nginx : 
     build :
        context : ~/docker/nginx
        dockerfile : dockerfile
     ports :
        - "80:80"
        - "433:433"
     volumes :
        - ~/docker/nginx/logs:/usr/local/nginx/logs
        - ~/web:/usr/local/nginx/html
        - ~/docker/nginx/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf:ro
        - ~/docker/nginx/conf/vhost:/usr/local/nginx/conf/vhost:ro
     container_name : nginx
     links :
        - php7
     restart : always

運(yùn)行命令自動(dòng)構(gòu)建容器

sudo docker-compose up -d

查看狀態(tài)

emon@lemon:~/docker$ sudo docker-compose ps
Name               Command               State                         Ports                       
--------------------------------------------------------------------------------------------------
mysql   docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp                            
nginx   /usr/local/nginx/sbin/ngin ...   Up      0.0.0.0:433->433/tcp, 443/tcp, 0.0.0.0:80->80/tcp 
php7    /usr/local/php7/sbin/php-f ...   Up      0.0.0.0:9000->9000/tcp                            

具體文件查看地址:https://github.com/zhaocong222/docker-lnmp

最后

有了 Docker 之后乃沙,搭建環(huán)境從未有過如此簡(jiǎn)單。

糾正原文錯(cuò)誤:
修改php7的dockerfile為(swoole和compose安裝錯(cuò)誤)

FROM centos:latest
MAINTAINER lemon <lemon616@outlook.com>

ENV TZ "Asia/Shanghai"

#安裝擴(kuò)展包
RUN yum install -y epel-release

#安裝依賴
RUN yum -y update && \
    yum install -y wget gcc automake autoconf libtool make gcc-c++ vixie-cron  file openssl-devel sharutils zip  bash vim cyrus-sasl-devel libmemcached libmemcached-devel libyaml libyaml-devel unzip libvpx-devel openssl-devel ImageMagick-devel autoconf tar gcc libxml2-devel libmcrypt mcrypt mhash libmcrypt-devel libxml2 libxml2-devel bzip2 bzip2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel bison libtool-ltdl-devel net-tools

RUN yum install -y \
        git zlib zlib-devel glibc glibc-devel \
    glib2 glib2-devel \
    ncurses curl openssl-devel \
    gdbm-devel db4-devel libXpm-devel \
    libX11-devel gd-devel gmp-devel \
    readline-devel libxslt-devel \
    expat-devel xmlrpc-c xmlrpc-c-devel \
    libicu-devel  php-devel \
     yum clean all

#install php
RUN cd /tmp && \
     wget http://cn.php.net/distributions/php-7.1.5.tar.gz && \
     tar -zxvf php-7.1.5.tar.gz && \
     cd php-7.1.5 && \
     ./configure --prefix=/usr/local/php7 \
    --with-mysql-sock --with-mysqli \
    --enable-fpm  --enable-soap \
    --with-libxml-dir --with-openssl \
    --with-mcrypt --with-mhash \
    --with-pcre-regex  --with-zlib \
    --enable-bcmath --with-iconv \
    --with-bz2 --enable-calendar \
    --with-curl --with-cdb --enable-dom \
    --enable-exif --enable-fileinfo \
    --enable-filter --with-pcre-dir \
    --enable-ftp --with-gd \
    --with-openssl-dir --with-jpeg-dir \
    --with-png-dir --with-zlib-dir \
    --with-freetype-dir \
    --enable-gd-native-ttf \
    --enable-gd-jis-conv --with-gettext \
    --with-gmp --with-mhash \
    --enable-json --enable-mbstring --enable-mbregex \
    --enable-mbregex-backtrack \
    --with-libmbfl --with-onig \
    --enable-pdo --with-pdo-mysql \
    --with-zlib-dir  --with-readline \
    --enable-session --enable-shmop \
    --enable-simplexml --enable-sockets \
    --enable-sysvmsg --enable-sysvsem \
    --enable-sysvshm --enable-wddx \
    --with-libxml-dir  --with-xsl \
    --enable-zip --enable-mysqlnd-compression-support \
    --with-pear --enable-intl --enable-pcntl \
    --enable-opcache && \
    make && make install

#config
RUN ln -sf /usr/local/php7/bin/php    /usr/local/bin/php && \
    ln -sf /usr/local/php7/bin/phpize /usr/local/bin/phpize && \
    ln -sf /usr/local/php7/bin/pecl   /usr/local/bin/pecl

RUN cp /tmp/php-7.1.5/php.ini-development /usr/local/php7/lib/php.ini && \
    cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf && \
    cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf


#配置php
RUN sed -i -e 's/listen = 127.0.0.1:9000/listen = 9000/' /usr/local/php7/etc/php-fpm.d/www.conf

#install swoole
#RUN pecl install swoole
RUN cd /tmp && \
     wget https://github.com/swoole/swoole-src/archive/swoole-1.7.6-stable.tar.gz && \
     tar -zxvf swoole-1.7.6-stable.tar.gz && \
     cd swoole-src-swoole-1.7.6-stable && \
     phpize && \
     ./configure && \
     make  && make install

#add extension

#安裝composer.phar
RUN cd /tmp
RUN wget https://getcomposer.org/composer.phar && \
    mv composer.phar /usr/local/bin/composer && \
    chmod 755 /usr/local/bin/composer

EXPOSE 9000

#啟動(dòng)php
ENTRYPOINT ["/usr/local/php7/sbin/php-fpm", "-F", "-c", "/usr/local/php7/lib/php.ini"]

參考:

docker搭建lnmp(一)

docker搭建lnmp(二)
(https://github.com/zhaocong222/docker-lnmp)

https://github.com/helingfeng/Docker-LNMP

https://github.com/yeszao/dnmp

How to use PHP, Apache, MySQL within Docker containers

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诗舰,一起剝皮案震驚了整個(gè)濱河市警儒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眶根,老刑警劉巖蜀铲,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異汛闸,居然都是意外死亡蝙茶,警方通過查閱死者的電腦和手機(jī)艺骂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門诸老,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事别伏√阒裕” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵厘肮,是天一觀的道長(zhǎng)愧口。 經(jīng)常有香客問我,道長(zhǎng)类茂,這世上最難降的妖魔是什么耍属? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮巩检,結(jié)果婚禮上厚骗,老公的妹妹穿的比我還像新娘。我一直安慰自己兢哭,他們只是感情好领舰,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迟螺,像睡著了一般冲秽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矩父,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天锉桑,我揣著相機(jī)與錄音,去河邊找鬼窍株。 笑死刨仑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夹姥。 我是一名探鬼主播杉武,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼辙售!你這毒婦竟也來了轻抱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤旦部,失蹤者是張志新(化名)和其女友劉穎祈搜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體士八,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡容燕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了婚度。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蘸秘。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出醋虏,到底是詐尸還是另有隱情寻咒,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布颈嚼,位于F島的核電站毛秘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阻课。R本人自食惡果不足惜叫挟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望限煞。 院中可真熱鬧霞揉,春花似錦、人聲如沸晰骑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)硕舆。三九已至秽荞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抚官,已是汗流浹背扬跋。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凌节,地道東北人钦听。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像倍奢,于是被迫代替她去往敵國(guó)和親朴上。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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

  • Getting Started Use the Current Stable Version (7.1) Buil...
    Leonzai閱讀 1,949評(píng)論 0 3
  • https://severalnines.com/blog/mysql-docker-containers-und...
    凸大愚若智凸閱讀 1,081評(píng)論 0 1
  • 注:原文地址:http://severalnines.com/blog/mysql-docker-containe...
    空亂木閱讀 5,977評(píng)論 0 7
  • 又有一段時(shí)間沒有去玩板啦卒煞,開心的是可以用手中的筆記錄自己的生活和成長(zhǎng)痪宰。2016年6月底開始接觸滑板,很開心在這段時(shí)...
    株株z閱讀 324評(píng)論 0 1
  • 如果你是煙花畔裕,只有一瞬衣撬,我又怎么忍心讓你開放。煙花雖美扮饶,盛開得那么炫璨具练,但是在散開而去的時(shí)候,誰又能忍受住那突如其...
    祖卡閱讀 196評(píng)論 0 0