首頁  >  文章  >  運維  >  docker中的lamp是什麼

docker中的lamp是什麼

青灯夜游
青灯夜游原創
2022-02-08 16:44:293412瀏覽

在docker中,LAMP是指Linux(作業系統)、Apache HTTP伺服器、MySQL(MariaDB等資料庫軟體)和PHP(Perl或Python)的組合方案,一般用來建立Web伺服器環境。

docker中的lamp是什麼

本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。

LAMP指的Linux(作業系統)、Apache HTTP伺服器、MySQL(有時也指MariaDB,資料庫軟體)和PHP(有時是指Perl或Python)的組合方案,一般很適合用來建立Web伺服器環境。

以下介紹如何使用Docker來建立一個包含LAMP元件的容器。

下載LAMP映像

搜尋Docker Hub上被收藏或使用較多的LAMP映像,筆者建議選擇tutum/lamp映像:

# sudo docker search -s 10 lamp
tutum/lamp              Out-of-the-box LAMP image (PHP+MySQL)           67 

执行docker pull命令,下载镜像:
 # sudo docker pull tutum/lamp

使用預設方式啟動LAMP容器

利用下載的映像啟動一個容器,並且映射容器的8080埠和3306埠:

# sudo docker run -d -p 8080:80 -p 3306:3306 tutum/lamp
# docker ps
使用curl命令测试,可以查看到默认的应用已经启动:
# curl http://127.0.0.1:8080

部署自己的PHP應用

預設的容器啟動了一個helloword應用程式。讀者可以基於此映像,編輯Dockerfile來建立自訂LAMP應用程式映像。

在宿主主機上建立新的工作目錄lamp:

# mkdir lamp
# cd lamp
# touch Dockerfile

在php目錄下裡面建立Dockerfile文件,內容為:

FROM tutum/lamp:latest
RUN rm -fr /app &&git clone https://github.com/username/customapp.git /app
#这里将https://github.com/username/customapp.git 地址替换为你自己的项目地址
EXPOSE 80 3306CMD ["/run.sh"]

建立映像,命名為dockerpool/ my-lamp-app:

# docker build -t dockerpool/my-lamp-app .
利用新创建镜像启动容器,注意启动时候指定-d参数,让容器后台运行:
# docker run -d -p 8080:80 -p 3306:3306 dockerpool/my-lamp-app
在本地主机上使用curl看一下自己的应用程序是不是已经正确启动:
# curl http://127.0.0.1:8080/

在PHP程式中連接資料庫

1、在容器中存取MySQL資料庫

下載的tutum/lamp鏡像中的MySQL資料庫已帶有預設的root用戶,而本地連線可以不使用密碼,所以在程式碼中存取資料庫的實作非常簡單:

<?php
$mysql = new mysqli("localhost", "root");
echo "MySQL Server info: ".$mysql->host_info;
?>

2、在容器外存取MySQL資料庫

預設的MySQL資料庫不支援root使用者遠端登錄,因此在容器外無法直接透過root使用者存取MySQL資料庫。
當第一次使用tutum/lamp映像啟動容器的時候,它會自動建立一個叫admin的MySQL用戶,並產生一個隨機密碼,使用docker logs指令可以取得到這個密碼:

# sudo docker logs 9cb

注意admin使用者俱有root相同的權限。

推薦學習:《docker影片教學

以上是docker中的lamp是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn