Docker從零構建php nginx

2022-09-28 10:51:08 字數 1773 閱讀 9834

雖然之前也曾用docker環境執行了一些專案,但對於映象這塊還不是很理解,且鑑於網上現成的映象都包含太多用不到的庫,所以決定從零開始構建乙個自己的映象。

alpine linux為基礎映象

docker pull gliderlabs/alpine

alpine linux 映象位址

目前最新的tag是3.8版本,映象只有4m的大小,非常的精簡。

執行映象

docker run -it gliderlabs/alpine

執行後可以看到裡面有基本的linux檔案系統,這裡不做演示,有興趣者可自行嘗試。

安裝php 和 nginx

apk update

apk add php7 nginx

接下來,根據自己的需要可以繼續安程式設計客棧裝php相關擴充套件包,或者其他linux擴充套件包。

搜尋擴充套件包,如php7工具包,可通過以下指令:

# apk search php7

安裝php擴充套件

複製** **如下:

apk add php7-mysqli php程式設計客棧7-pdo_mysql php7-mbstring php7-json php7-zlib php7-gd php7-intl php7-session php7-fpm php7-memcached

目錄結構

啟動php-fpm和nginx

# 先建立pid檔案,否則nginx執行不了

mkdir /run/nginx

touch /run/nginx/nginxpid

# 先執行php,再執行nginx

/usr/sbin/php-fpm7

/usr/sbin/nginx

至此,能看到php和nginx正常執行,映象環境已經基本完成了。 接下來,可以看看怎麼把這個映象儲存起來。

建立映象

另起乙個終端,用 docker ps檢視映象id,如下指令可以儲存映象:

docker commit -a "yisonli" -m "程式設計客棧my first php7-nginx" 9d9c6030e5e9 yisonli/php7-nginx-alpine:0.1

注:9d9c6030e5e9為映象id,yisonli/php7-nginx-alpine為儲存的映象名,版本定義為0.1

執行新生成的映象

繫結8080埠看看效果

docker run -it -p 8080:8080 yisonli/php7-nginx-alpine:0.1

手動啟動php-fpm和nginx後,瀏覽器就可看到效果了。

docker補充記錄

【共享資料夾】

docker run -v `pwd`/www:/var/www/html -it -p 8080:8080 yisonli/phwww.cppcns.comp7-nginx-alpine:0.1

【刪除未執行的容器】

docker rm $(docker ps -a -q)

【用dockerfile方式構建映象】

www.cppcns.comdocker build -t yisonli/php7-nginx-alpine:0.2 .

0.2是本文流程稍作優化後,寫成dockerfile後build出來的,而且帶啟動指令碼。

已上傳到 docker hub,可供**研究。

【給映象新增額外的tag標籤】

docker tag 9d9c6030e5e9 test/mytag

本文標題: docker從零構建php-nginx-alpine映象的方法

本文位址:

Docker從零構建C語言helloworld映象

一 編寫helloworld.c 原始檔 mkdir hello world cd hello world vim hellow.c 寫入以下源 include int main 二 利用gcc編譯helloworld.c 原始檔 1.安裝gcc yum install y gcc yum inst...

從零搭建docker服務

docker是以乙個開源的虛擬化部署工具,能夠讓人從繁雜的專案部署及管理中解脫出來 docker從入門到實踐 之前公司全部用的手動後台啟動,包括內部服務和所用的元件 mysql,redis等 環境多了之後難以管理,出現了而很多痛點。後來決定採用docker改變現狀。docker docker com...

如何從零構建直播系統(後端篇)

如何從零搭建和理解直播系統,包括運維,直播流 商選擇,多端支援直播,直播互動能力,後台管理,實時結算,月度主播公會結算等,會讓你對直播有個更清晰的認識。本人在直播行業也有4年,踩過很多坑,也會分享一些經驗給大家。選擇合適的直播流 商,可能是多家互備 自建機房還是使用雲 開關播流程,多端支援直播能力 ...