在?Docker?容器中運(yùn)行?PHPMyAdmin的詳細(xì)步驟
PHPMyAdmin是 MySQL 和 MariaDB 數(shù)據(jù)庫(kù)的流行管理界面。它允許您使用 Web 瀏覽器與您的模式、表和數(shù)據(jù)進(jìn)行交互。phpMyAdmin能夠?yàn)槟愕腗ySQL提供直觀、方便的Web管理界面,非常好用。
該項(xiàng)目有一個(gè)官方的 Docker 鏡像,它簡(jiǎn)化了在容器化環(huán)境中的部署。以下是如何使用圖像快速運(yùn)行新的 PHPMyAdmin 實(shí)例。
基本用法
最簡(jiǎn)單的安裝讓 PHPMyAdmin 容器連接到任何可訪問(wèn)的數(shù)據(jù)庫(kù)服務(wù)器:
docker run -d --name phpmyadmin -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
此命令在端口 8080 上啟動(dòng) PHPMyAdmin。localhost:8080在瀏覽器中訪問(wèn)以查看登錄屏幕。環(huán)境變量的存在會(huì)PMA_ARBITRARY導(dǎo)致顯示服務(wù)器連接表單。指定要登錄的 MySQL 或 MariaDB 數(shù)據(jù)庫(kù)的主機(jī)和用戶憑據(jù)。
當(dāng)您使用此方法時(shí),您通常會(huì)看到一個(gè) PHPMyAdmin 警告“某些擴(kuò)展功能已被停用”。當(dāng)您連接的服務(wù)器沒(méi)有名為phpmyadmin. PHPMyAdmin 使用這個(gè)模式來(lái)存儲(chǔ)它自己的配置數(shù)據(jù)。
按照警告鏈接“創(chuàng)建數(shù)據(jù)庫(kù)”完成安裝。您的用戶帳戶將需要在服務(wù)器上創(chuàng)建新數(shù)據(jù)庫(kù)的權(quán)限。
預(yù)設(shè)服務(wù)器
作為允許任意訪問(wèn)的替代方法,您可以使用預(yù)配置的服務(wù)器連接啟動(dòng) PHPMyAdmin 容器。提供PMA_HOSTandPMA_PORT環(huán)境變量而不是PMA_ARBITRARY:
docker run -d --name phpmyadmin -e PMA_HOST=mysql.example.com -e PMA_PORT=33060 -p 8080:80 phpmyadmin
PMA_PORT是可選的。當(dāng)沒(méi)有提供值時(shí),它將使用 MySQL 默認(rèn)值 3306。
使用這些變量啟動(dòng)容器將限制 PHPMyAdmin 使用mysql.example.com服務(wù)器。系統(tǒng)會(huì)在登錄屏幕上提示您輸入用戶名和密碼,但您不需要提供主機(jī)名。
PHPMyAdmin 也可以配置為呈現(xiàn)多個(gè)服務(wù)器選項(xiàng)。提供PMA_HOSTS并PMA_PORTS以逗號(hào)分隔的連接列表來(lái)啟用此功能。
使用 MySQL Docker 容器
另一個(gè)常見(jiàn)用例是連接到在單獨(dú)的 Docker 容器中運(yùn)行的 MySQL 或 MariaDB 服務(wù)器。您可以在端口上公開數(shù)據(jù)庫(kù)服務(wù)器,也可以將兩個(gè)容器連接到共享的 Docker 網(wǎng)絡(luò)。在任何一種情況下,使用PMA_HOST和PMA_PORT環(huán)境變量將指示 PHPMyAdmin 如何連接到服務(wù)器。
還支持舊版 Docker 鏈接:
docker run -d --name phpmyadmin --link my_mysql_container:db -p 8080:80 phpmyadmin
此命令允許您將 PHPMyAdmin 連接到my_mysql_container容器,而無(wú)需手動(dòng)設(shè)置網(wǎng)絡(luò)鏈接。這個(gè)功能在 Docker 中被棄用了,所以切換到網(wǎng)絡(luò)命令是更可取的:
docker network create phpmyadmin docker network connect phpmyadmin mysql_container_name --ip 172.17.0.1 docker network connect phpmyadmin phpmyadmin_container_name
作為替代方案,您可以使用 Docker 的–network標(biāo)志通過(guò)預(yù)配置的網(wǎng)絡(luò)連接啟動(dòng) PHPMyAdmin :
docker run -d --name phpmyadmin --network phpmyadmin -p 8080:80 phpmyadmin
現(xiàn)在 PHPMyAdmin 將能夠通過(guò)共享網(wǎng)絡(luò)訪問(wèn) MySQL 容器。將PMA_HOST環(huán)境變量設(shè)置為172.17.0.1啟動(dòng)容器時(shí)。
使用 Docker Compose 簡(jiǎn)化部署
編寫Docker Compose 文件可以簡(jiǎn)化重要的部署。您可以使用該docker-compose up -d命令以可重復(fù)的方式啟動(dòng)一個(gè)新的 PHPMyAdmin 容器。
這是docker-compose.yml任意連接模式下的 PHPMyAdmin:
version: "3" services: phpmyadmin: image: phpmyadmin:latest ports: - 8080:80 environment: - PMA_ARBITRARY=1 restart: unless-stopped
Docker Compose 還可以幫助您使用全新的 MySQL 數(shù)據(jù)庫(kù)安裝和 PHPMyAdmin 容器創(chuàng)建堆棧:
version: "3" service: mysql: image: mysql:latest expose: - 3306 environment: - MYSQL_ROOT_PASSWORD volumes: - mysql:/var/lib/mysql restart: unless-stopped phpmyadmin: image: phpmyadmin:latest ports: - 8080:80 environment: - PMA_HOST: mysql - PMA_PASSWORD: ${MYSQL_ROOT_PASSWORD} restart: unless-stopped volumes: - mysql
運(yùn)行docker-compose up -d以使用完全聯(lián)網(wǎng)的 PHPMyAdmin 容器啟動(dòng) MySQL。PHPMyAdmin 的PMA_HOST變量設(shè)置為mysql,引用 MySQL 服務(wù)名稱。Docker Compose 自動(dòng)設(shè)置主機(jī)名以匹配服務(wù)名稱,允許 PHPMyAdmin 使用共享網(wǎng)絡(luò)連接到 MySQL。
配置安裝
PHPMyAdmin Docker 映像支持用戶提供的配置文件,您可以通過(guò)Docker 卷注入該配置文件。路徑是/etc/phpmyadmin/config.user.inc.php:
docker run -d \ --name phpmyadmin \ -e PMA_ARBITRARY=1 \ -p 8080:80 \ -v my-config-file.php:/etc/phpmyadmin/config.user.inc.php phpmyadmin
您可以添加PHPMyAdmin 支持的任何配置變量。
該圖像還支持許多常見(jiàn)設(shè)置的環(huán)境變量。這些措施包括MEMORY_LIMIT,UPLOAD_LIMIT并且MAX_EXECUTION_TIME,每個(gè)對(duì)應(yīng)于可能需要如果你使用長(zhǎng)時(shí)間運(yùn)行或復(fù)雜的查詢進(jìn)行調(diào)整,PHP INI值。
敏感值,例如PMA_HOST,PMA_PASSWORD,和MYSQL_ROOT_PASSWORD,可以使用注射多克爾秘密而非純的環(huán)境變量。附加_FILE到變量的名稱,然后將值設(shè)置為容器內(nèi)提供實(shí)際值的路徑。
docker run -d --name phpmyadmin -e PMA_HOST_FILE=/run/secrets/pma_host -p 8080:80 phpmyadmin
概括
PHPMyAdmin 是最流行和最著名的 MySQL 管理實(shí)用程序之一。裸機(jī)安裝為您的系統(tǒng)添加了多個(gè)依賴項(xiàng),將 Apache 和 PHP 與應(yīng)用程序的源代碼捆綁在一起。
在 Docker 中安裝 PHPMyAdmin 為您提供了一個(gè)隔離環(huán)境,可以使用少數(shù) Docker CLI 命令創(chuàng)建、替換和刪除該環(huán)境。官方鏡像可以連接到可以從您的主機(jī)訪問(wèn)的任何 MySQL 服務(wù)器,包括在其他 Docker 容器中運(yùn)行的數(shù)據(jù)庫(kù)。
可以在官方文檔中找到有關(guān)運(yùn)行和使用 PHPMyAdmin 的更詳細(xì)指南。查看安全指南尤其重要,這樣您就不會(huì)無(wú)意中讓您的數(shù)據(jù)庫(kù)面臨外部攻擊的風(fēng)險(xiǎn)。在暴露給外界的容器中部署 PHPMyAdmin 時(shí),您還應(yīng)該考慮Docker 安全最佳實(shí)踐。
到此這篇關(guān)于在 Docker 容器中運(yùn)行 PHPMyAdmin的文章就介紹到這了,更多相關(guān)Docker 運(yùn)行 PHPMyAdmin內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解利用Dockerfile構(gòu)建mysql鏡像并實(shí)現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置
本篇文章主要介紹了詳解利用Dockerfile構(gòu)建mysql鏡像并實(shí)現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06手把手帶大家通過(guò)Docker部署前后端分離項(xiàng)目(親測(cè)可用)
近年來(lái)前后端分離已經(jīng)成為中大型軟件項(xiàng)目開發(fā)的最佳實(shí)踐,下面這篇文章主要給大家介紹了關(guān)于通過(guò)Docker部署前后端分離項(xiàng)目的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Docker如何訪問(wèn)到宿主機(jī)MYSQL的實(shí)現(xiàn)方法
使用?Docker?能實(shí)現(xiàn)服務(wù)的容器化,并使用容器間網(wǎng)絡(luò)在它們之間進(jìn)行通信,本文主要介紹了Docker如何訪問(wèn)到宿主機(jī)MYSQL的實(shí)現(xiàn)方法,感興趣的可以了解一下,感興趣的可以了解一下2023-09-09詳解SpringBoot項(xiàng)目docker環(huán)境運(yùn)行時(shí)無(wú)限重啟問(wèn)題
這篇文章主要介紹了詳解SpringBoot項(xiàng)目docker環(huán)境運(yùn)行時(shí)無(wú)限重啟問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11docker環(huán)境中websocket?通過(guò)nginx代理不通解決方案
這篇文章主要介紹了docker環(huán)境中websocket?通過(guò)nginx代理不通解決方案,下面是一些可能會(huì)導(dǎo)致?WebSocket?代理失敗的問(wèn)題以及相應(yīng)的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05docker安裝RabbitMQ及安裝延遲插件的詳細(xì)過(guò)程
MQ(message queue)字面意思上來(lái)說(shuō)消息隊(duì)列,是一種跨進(jìn)程的通信機(jī)制,用于上下游傳遞消息,本文給大家詳細(xì)介紹docker安裝RabbitMQ及安裝延遲插件的過(guò)程,感興趣的朋友一起看看吧2022-06-06