dockerphp
Ⅰ 自己私下寫php項目怎麼用docker
首先還是從一個PHP在Docker容器下的Hello World實例開始。我們准備這樣一個PHP文件index.php
<?php
echo"PHPinDocker";
然後在同目錄下創建文本文件並命名為Dockerfile,內容為:
#從官方PHP鏡像構建
FROMphp
#將index.php復制到容器內的/var/www目錄下
ADDindex.php/var/www/
#對外暴露8080埠
EXPOSE8080
#設置容器默認工作目錄為/var/www
WORKDIR/var/www/
#容器運行後默認執行的指令
ENTRYPOINT["php","-S","0.0.0.0:8080"]
構建這個容器:
dockerbuild-tallovince/php-helloworld.
運行這個容器
dockerrun-d-p8080:8080allovince/php-helloworld
查看結果:
curllocalhost:8080
PHPinDocker
這樣我們就創建了一個用於演示PHP程序的Docker容器,任何安裝過Docker的機器都可以運行這個容器獲得同樣的結果。而任何有上面的php文件和Dockerfile的人都可以構建出相同的容器,從而完全消除了不同環境,不同版本可能引起的各種問題。
想像一下程序進一步復雜,我們應該如何擴展呢,很直接的想法是繼續在容器內安裝其他用到的服務,並將所有服務運行起來,那麼我們的Dockerfile很可能發展成這個樣子:
FROMphp
ADDindex.php/var/www/
#安裝更多服務
RUNapt-get
install-y
mysql-server
nginx
php5-fpm
php5-mysql
#編寫一個啟動腳本啟動所有服務ENTRYPOINT
["/opt/bin/php-nginx-mysql-start.sh"]
雖然我們通過Docker構建了一個開發環境,但覺不覺得有些似曾相識呢。沒錯,其實這種做法和製作一個虛擬機鏡像是差不多的
Ⅱ docker 會影響系統的php環境么
如果對PHP環境配置不了解的話,建議你使用PHPWAMP綠色集成環境,
PHPWAMP同時運行幾百個不同的PHP版本。
支持所有Windows系統,目前最新的Windows10也沒問題。
PHPWAMP自帶php5.2、php5.3、php5.4、php5.5、php5.6、php7這6個默認版本,擁有共生模式(與其他環境同時使用),單身狗霸體模式,強行打通阻礙運行網站。
如果還不滿意,可以自定義設置任何PHP版本,700個PHP版本隨便你切換。
這篇教程文章里提供700多個PHP版本下載。(700個PHP版本一鍵切換)
網路搜索這個文章標題:
PHP集成環境如何自定義PHP版本,同時運行多個php版本一鍵開啟模塊。
搜到的文章中,在文章的附件里有提供PHP歷史版本下載,差不多700多個PHP版本。
Ⅲ 怎麼使用Docker搭建PHP開發環境
Docker流行之前,要搭建開發環境通常有兩種選擇:一種是使用wamp、xampp、mamp等集成開發環境安裝包,另外一種就是使用普通虛擬機來安裝linux伺服器,然後通過下載一鍵安裝包(如:lnmp)或者逐個安裝做需要的軟體。前者雖然簡單,但太不靈活,想要安裝額外的軟體或者版本會很麻煩或者乾脆不知道如何下手;後者除了費時費力,佔用本機資源過多,可能會導致系統運行緩慢
具體情況你可以多去後盾人看個教學視頻,口碑還不錯,值得去嘗試。
Ⅳ 如何在docker容器裏手動重啟php
include <QtCore/QCoreApplication>
#include <QAxObject>
#include <Windows.h>
int main(int argc, char *argv[])
{
//OleInitialize(0);
//CoInitialize(0);
QCoreApplication a(argc, argv);
QAxObject *asdfg = new QAxObject("Excel.Application");
return a.exec();
}
Ⅳ docker 怎麼啟動php容器
這是最簡單的架構方式,在 Docker 發展早期,Docker 被大量的濫用,比如,一個鏡像內啟動多服務,日誌收集依舊是按照 Syslog 或者別的老方式,鏡像容量非常龐大,基礎鏡像就能達到 80M,這和 Docker 當初提出的思想完全南轅北轍了,而 Alpine Linux 發行版作為一個輕量級 Linux 環境,就非常適合作為 Docker 基礎鏡像,Docker 官方也推薦使用 Alpine 而不是 Debian 作為基礎鏡像,未來大量的現有官方鏡像也將會遷移到 Alpine 上。本文所有鏡像都將以 Alpine 作為基礎鏡像。
Ⅵ 怎麼樣使用Docker部署一個PHP開發環境
安裝Docker
平時開發的環境一般都是Mac或者Windows,所以接下來只針對前兩者寫下步驟,這兩個平台,官方都推薦了兩種安裝方式:app和工具包(toolbox)。註:app方式對系統版本和配置會有一定要求,Mac版本會自動為你安裝好VM(虛擬機),但Windows需要你安裝微軟虛擬化產品Hyper-V,而toolbox方式則需要你額外安裝virtualbox來作為docker的VM。
Ⅶ docker php 怎麼這么大
步驟:
1、 在安裝好php環境的容器,參考上面貼出的鏈接那篇文章的部分,做好基礎工作:
#創建工作目錄
mkdir /rootfs
#進入工作目錄
cd /rootfs
#創建基礎目錄
mkdir -p bin etc lib proc sys tmp dev/pts usr/lib64 usr/bin usr/local/bin
#創建一個空的DNS服務用的文件
touch etc/resolv.conf
#復制名稱解析文件
cp /etc/nsswitch.conf etc/nsswitch.conf
#創建用戶和用戶組文件
echo root:x:0:0:root:/:/bin/sh > etc/passwd
echo root:x:0: > etc/group
#創建php程序運行的用戶
echo www:x:1001:1001:root:/:/bin/sh >> etc/passwd
echo www:x:1001: >> etc/group
#依賴庫軟鏈接
ln -s lib lib64
#工具軟鏈接
ln -s bin sbin
#下載busybox,若網速慢可以用迅雷下載,然後復制到/sbin/busybox
curl -o /sbin/busybox http://busybox.net/downloads/binaries/1.21.1/busybox-x86_64
#加許可權
chmod +x /sbin/busybox
#安裝busybox
cp /sbin/busybox bin
busybox --install -s bin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2、找依賴,假設我的php安裝在/usr/local/php中,用交互模式進入容器
運行命令查看依賴:
ldd /usr/local/php/sbin/php-fpm
1
1
會列出一大堆依賴庫,並且這些庫在不同的路徑。由於用到busybox,那就將這些庫復制到工作目錄的根目錄的lib即可。即/rootfs/lib/中,用這個工具找出來的是不完整的、還有c++運行庫等等。
我整理出來的完整依賴庫是:
ld-linux-x86-64.so.2
libbz2.so.1
libc.so.6
libcom_err.so.2
libcrypt.so.1
libcrypto.so.10
libcurl.so.4
libdl.so.2
libfreebl3.so
libfreetype.so.6
libgcc_s.so.1
libgssapi_krb5.so.2
libiconv.so.2
libidn.so.11
libjpeg.so.62
libk5crypto.so.3
libkeyutils.so.1
libkrb5.so.3
libkrb5support.so.0
liblber-2.4.so.2
libldap-2.4.so.2
liblzma.so.5
libm.so.6
libmcrypt.so.4
libnsl.so.1
libnspr4.so
libnss_files.so.2
libnss3.so
libnssutil3.so
libpcre.so.1
libplc4.so
libplds4.so
libpng15.so.15
libpthread.so.0
libresolv.so.2
librt.so.1
libsasl2.so.3
libselinux.so.1
libsmime3.so
libssh2.so.1
libssl.so.10
libssl3.so
libstdc++.so.6
libxml2.so.2
libz.so.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
當然根據你php安裝的擴展而定,但是有些決不能缺少,
復制到rootfs/lib/
3、復制php程序
#復制PHP程序
cp -R /usr/local/php /rootfs/usr/local/php
#復制啟動腳本
cp /etc/init.d/php-fpm /rootfs/php-fp
將 /usr/local/php/php-fpm.conf 改為以下配置,守護進程方式運行改為no,不然 到時候只能用交互模式 docker run -it 那種。
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice
daemonize = no #這里重要
[www]
listen = 0.0.0.0:9000 #這里也重要
listen.backlog = -1
#listen.allowed_clients = any
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
4、打包tar文件
tar cf /rootfs.tar .
5、按ctrl+p+q使php容器後台運行,找個地方創建工作目錄,並且寫DockerFile。
#將rootfs.tar 復制出來,其實這個已經是一個基於busybox+php創建的小型系統了
docker cp technofiend/php:/rootfs.tar .
寫DockerFile
FROM scratch
MAINTAINER Technofiend <[email protected]>
ADD rootfs.tar /
WORKDIR /home
EXPOSE 9000
ENTRYPOINT ["/php-fpm", "start"]
然後build系統
docker build -t technofiend/miniphp .
這里寫圖片描述
再看看體積,瘦了很多。比還沒用過的centos系統還要少。
要是導出來再壓縮的話,就只有50M左右,真是快速部署必不可少的玩意啊!
注意:體積少的鏡像雖然可以減少了網路傳輸的時間,達到快速部署的目的,但體積少的容器某些功能例如busybox提供的,可能沒有完整版的性能好。所以,還是看實際用途吧!
別忘了,要定期進行安全升級,不然很可能就會有安全隱患。
Ⅷ docker 安裝php擴展出錯,bash: docker-php-ext-install: command not found
不是這樣用的啊 進容器後 直接 yum install php 就完了 進容器後就不支持 docker+命令了
Ⅸ docker php 鏡像怎麼配置
1.選擇 Ubuntu 官方的 14.04 版本為我們依賴的系統鏡像。
dockerfile
FROM ubuntu:trusty
2.因所有官方鏡像均位於境外伺服器,為了確保所有示例能正常運行,DaoCloud 提供了一套境內鏡像源,並與官方源保持同步。如果使用 DaoCloud 的鏡像源,則指向:FROM cloud.io/ubuntu:trusty
3.設置鏡像的維護者,相當於鏡像的作者或發行方。
dockerfile
MAINTAINER Captain Dao <[email protected]>
4.用 RUN 命令調用 apt-get 包管理器安裝 PHP 環境所依賴的程序包。
安裝依賴包相對比較固定,因此該動作應該盡量提前,這樣做有助於提高鏡像層的復用率。
Ⅹ docker 怎麼添加php擴展
將以下代碼保存為一份xxx.sh 並執行,即可擴展mysql、gd、phalcon
#! /usr/bin
PHP_VERSION=7.0.10
docker run --name php \
-v /home/wwwroot:/home/wwwroot \
-v ~/php_config/php.ini:/usr/local/etc/php/php.ini \
-p 9000:9000 \
-d php:${PHP_VERSION}-fpm
docker exec -it php sed -i "s/33/2016/g" /etc/passwd
docker exec -it php sed -i "s/33/2016/g" /etc/gr