docker構(gòu)建centos+php+nginx鏡像

最近在工作中用到了docker,不得不給大家推薦一下,真乃神器,下面分享一下我的鏡像構(gòu)建步驟(正常情況下1小時(shí)內(nèi)可以完成):

0.準(zhǔn)備工作

先在本地建立一個(gè)工作目錄,我這里是~/docker/centos/,此目錄下新建download目錄,然后下載這幾個(gè)包:libxml2-2.9.3.tar.gz、nginx-1.8.0.tar.gz、pcre-8.38.tar.gz、php-7.0.33.tar.gz、zlib-1.2.11.tar.gz、libiconv-1.14.tar.gz (下載鏈接: https://pan.baidu.com/s/1JceNQGndSGcTOQBiRnERvA 提取碼: mfsv )

1.拉取centos鏡像作為基礎(chǔ)鏡像

docker pull centos:7

2.啟動(dòng)鏡像容器

docker run -d -i -t -p 80:80 centos:7 /bin/bash

3.安裝gcc 和 gcc-c++

yum install -y gcc gcc-c++ automake autoconf libtool make openssl openssl-devel wget

4.創(chuàng)建所需目錄

mkdir /web
mkdir /opt/nginx
mkdir /opt/php
mkdir /opt/packages
mkdir /download/source

5.關(guān)閉容器,重新啟動(dòng)容器并且映射宿主機(jī)目錄

docker run -d -i -t -p 80:80 -v ~/docker/centos/download:/temp centos:7 /bin/bash

6.拷貝所需文件

cd /temp
cp * /download/source

7.安裝pcre (不需要編譯,解壓就行)

tar -zxvf pcre-8.38.tar.gz

8.安裝zlib (不需要編譯,解壓就行)

tar -zxvf zlib-1.2.11.tar.gz

9.安裝nginx

tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/opt/nginx --with-pcre=/download/source/pcre-8.38 --with-zlib=/download/source/zlib-1.2.11
make
make install

10.安裝libxml2

tar -zxvf libxml2-2.9.3.tar.gz
cd libxml2-2.9.3
./configure --prefix=/opt/packages/libxml2 --with-python=no
make
make install

11.安裝libiconv (這里有個(gè)小問題 https://blog.csdn.net/zsl10/article/details/52143713)

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar -zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/opt/packages/libiconv
make && make install

12.安裝php

yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libmcrypt-devel mhash-devel bzip2-devel
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install -y libmcrypt-devel mhash-devel mcrypt
tar -zxvf php-7.0.33.tar.gz
cd php-7.0.33
./configure --prefix=/opt/php/php-7.0.33 \
--with-iconv-dir=/opt/packages/libiconv \
--with-libxml-dir=/opt/packages/libxml2 \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-kerberos \
--with-libdir=lib64 \
--with-mysqli \
--with-openssl \
--with-openssl-dir= \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-jpeg-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-bz2 \
--with-mhash \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-xml \
--enable-zip \
--with-config-file-path=/opt/php/php-7.0.33/etc
make
make install

13.配置php

cd /download/source/php-7.0.33
cp php.ini-production /opt/php/php-7.0.33/etc/php.ini
cd /opt/php/php-7.0.33/etc
cp php-fpm.conf.default php-fpm.conf
cd /opt/php/php-7.0.33/etc/php-fpm.d
cp www.conf.default www.conf

14.設(shè)置環(huán)境變量

編輯 /etc/profile 加入

export NGINX_HOME=/opt/nginx
export PATH=$PATH:$NGINX_HOME/sbin
export PHP_HOME=/opt/php/php-7.0.33
export PATH=$PATH:$PHP_HOME/bin
export PATH=$PATH:$PHP_HOME/sbin

執(zhí)行 source /etc/profile

vi ~/.bashrc

添加 source /etc/profile

15.開機(jī)自動(dòng)啟動(dòng)[https://blog.csdn.net/qq_34815528/article/details/93301220](systemctl 命令需要在特殊權(quán)限下使用,所以先退出容器,打包鏡像)

docker run --privileged=true -d -i -t -p 80:80 -v ~/docker/centos/download:/temp centos:7 /usr/sbin/init

vi /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
vi /lib/systemd/system/php-fpm.service

[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/opt/php/php-7.0.33/sbin/php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target

啟動(dòng)服務(wù)

systemctl start nginx.service
systemctl start php-fpm.service

開機(jī)自動(dòng)啟動(dòng)

systemctl enable nginx.service
systemctl enable php-fpm.service

16.時(shí)區(qū)設(shè)置

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

17.提交保存鏡像

docker commit [containerId] centos:7

18.編寫配置文件,開始調(diào)試

docker run --privileged=true -d -i -t -v ~/docker/centos/hosts:/etc/hosts -v ~/docker/centos/nginx/conf/conf.d:/opt/nginx/conf/conf.d -v ~/docker/centos/nginx/conf/nginx.conf:/opt/nginx/conf/nginx.conf -v ~/docker/centos/nginx/logs:/opt/nginx/logs -v ~/workspace/code/php:/web -v ~/docker/centos/php/php.ini:/opt/php/php-7.0.33/etc/php.ini -p 80:80 centos:7 /usr/sbin/init

19.發(fā)布鏡像

登錄阿里云鏡像倉(cāng)庫(kù)
本地打tag
推送云端倉(cāng)庫(kù)

20.拉取鏡像

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,520評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,362評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,541評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,896評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,062評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,608評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,356評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,555評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,769評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評(píng)論 1 295
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,289評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,516評(píng)論 2 379

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