中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker怎么自定義鏡像構建php7

發布時間:2022-03-24 17:43:34 來源:億速云 閱讀:184 作者:iii 欄目:web開發

這篇文章主要講解了“docker怎么自定義鏡像構建php7”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“docker怎么自定義鏡像構建php7”吧!

首先進行簡單的docker安裝。

要進行自定義鏡像,我們需要選擇一個基礎鏡像進行構建自己的鏡像:其實說白了,就是在一個有基礎定義好的容器內,執行安裝各種程序的命令,生成 所謂的dockerfile 文件,既然如此第一步我們首先需要找一個本地的鏡像作為基礎鏡像來操作即可:

1

docker怎么自定義鏡像構建php7
如上圖所示,我們來以centos為基礎鏡像,來構建一個dockerfile

2第二步我們需要構建一個目錄,用于存放dockerfile文件

docker怎么自定義鏡像構建php7

在root下構建docker_demo目錄,存放 dockerfile文件以及需要安裝的程序文件即可,因為我要搭建php的自定義環境,所以我們再來搞一個php7的壓縮包即可

wget http://am1.php.net/get/php-7.0.0.tar.gz/from/this/mirror

docker怎么自定義鏡像構建php7

然后改名字

docker怎么自定義鏡像構建php7

現在php nginx都有了,至于composer可以在php安裝成功以后再自行操作即可~~~

接下來就是編寫dockerfile文件了,在此之前,簡單了解下dockerfile編寫的關鍵字格式:

from 代表基于哪個鏡像

run 安裝軟件使用

maintainer 鏡像的創建者

cmd 容器啟動時執行的命令,但是一個dockerfile中只能有一條cmd命令,多條則只執行最后一條cmd

entrypoint 容器啟動時執行的命令,但是一個dockerfile中只能有一條cmd命令,多條則只執行最后一條

user 使用哪個用戶運行container

expose 容器內部服務暴露的端口,主機上還需要在run容器時,做端口映射:

docker run -d -p 80:8080 centos6xxx

上邊命令表示把容器內部的8080端口映射到主機80端口上

env 用來設置環境變量

add 將主機上的文件拷貝到container內的對應路徑,所有拷貝到容器中的文件和文件夾權限為0755,uid和gid為0,如果文件是可識別的壓縮格式,則docker會幫忙解壓縮,add只有在build鏡像的時候運行一次,后面運行container的時候不會再重新加載了。

例子如:

add nginx-1.12.2.tar.gz /usr/local/src

volume 可以將本地文件夾或者其他容器的文件夾掛在到容器內。

workdir 切換目錄使用,(相當于cd目錄)

onbuild 指定的命令在構建鏡像時不執行,而是在它的子鏡像中執行。

學完了dockerfile基礎命令,我們來試著搞一搞這個環境.

docker pull centos

首先下載一個基礎鏡像,如果有這一步請忽略,下面是我的dockerfile

# base image
# 基礎鏡像
from docker.io/centos

# maintainer編寫者
maintainer xy61521@163.com

# put nginx-1.12.2.tar.gz into /usr/local/src and unpack nginx 來吧nginx 和php提前都放進基礎鏡像的/usr/local/src目錄下,方便編譯安裝
add nginx-1.12.2.tar.gz /usr/local/src
add php-7.0.0.tar.gz /usr/local/src

# running required command 安裝nginx的一系列亂七八糟的依賴包
run yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel
run yum install -y libxslt-devel -y gd gd-devel geoip geoip-devel pcre pcre-devel
run useradd -m -s /sbin/nologin nginx

# change dir to /usr/local/src/nginx-1.12.2
workdir /usr/local/src/nginx-1.12.2

# execute command to compile nginx
run ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install

#先裝個本地mysql
run yum install -y wget
run wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
run rpm -ivh mysql57-community-release-el7-8.noarch.rpm
run yum install -y mysql-server


#截止此,開始安裝php,宇宙慣例,開始安裝一些編譯的依賴包
run yum -y install epel-release
run yum -y install libmcrypt-devel
run yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel
workdir /usr/local/src/php-7.0.0
#編譯 安裝
run ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-config-file-scan-dir=/usr/local/php7/etc/php.d --with-mcrypt=/usr/include --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-gd --with-iconv --with-zlib --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache && make && make install

run cp php.ini-production /usr/local/php7/etc/php.ini

構建成功dockerfile文件之后,docker build進行構建

docker build -t centos_lnmp:v1 .

后邊的.代表相對路徑當前目錄,也可使用絕對路徑

然后就是漫長的等待

docker怎么自定義鏡像構建php7

直到構建成功鏡像,至此我們重新開始

docker images

docker怎么自定義鏡像構建php7

我們看到該鏡像已經構建成功(有一點幾率構建失敗,失敗的話刪除容器和鏡像重新構建即可),然后運行

docker run -dt -p 80:80 centos_lnmp:v1

docker怎么自定義鏡像構建php7

成功后則可進入容器,配置nginx php 。

感謝各位的閱讀,以上就是“docker怎么自定義鏡像構建php7”的內容了,經過本文的學習后,相信大家對docker怎么自定義鏡像構建php7這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸州市| 上林县| 安福县| 阿拉善盟| 修武县| 托克逊县| 治多县| 广元市| 洪泽县| 洛扎县| 安徽省| 大英县| 前郭尔| 泉州市| 平武县| 台南市| 高阳县| 宜兴市| 绥化市| 东丰县| 天台县| 凌海市| 和林格尔县| 子洲县| 思南县| 衡南县| 平阳县| 平陆县| 岑巩县| 沾化县| 岳普湖县| 壤塘县| 绥化市| 岐山县| 宣恩县| 桦川县| 邛崃市| 巴彦淖尔市| 子长县| 万载县| 尼勒克县|