在?Docker?容器中運行?PHPMyAdmin的詳細步驟

PHPMyAdmin是 MySQL 和 MariaDB 數據庫的流行管理界面。它允許您使用 Web 瀏覽器與您的模式、表和數據進行交互。phpMyAdmin能夠為你的MySQL提供直觀、方便的Web管理界面,非常好用。
該項目有一個官方的 Docker 鏡像,它簡化了在容器化環(huán)境中的部署。以下是如何使用圖像快速運行新的 PHPMyAdmin 實例。
基本用法
最簡單的安裝讓 PHPMyAdmin 容器連接到任何可訪問的數據庫服務器:
docker run -d --name phpmyadmin -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
此命令在端口 8080 上啟動 PHPMyAdmin。localhost:8080在瀏覽器中訪問以查看登錄屏幕。環(huán)境變量的存在會PMA_ARBITRARY導致顯示服務器連接表單。指定要登錄的 MySQL 或 MariaDB 數據庫的主機和用戶憑據。

當您使用此方法時,您通常會看到一個 PHPMyAdmin 警告“某些擴展功能已被停用”。當您連接的服務器沒有名為phpmyadmin. PHPMyAdmin 使用這個模式來存儲它自己的配置數據。

按照警告鏈接“創(chuàng)建數據庫”完成安裝。您的用戶帳戶將需要在服務器上創(chuà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是可選的。當沒有提供值時,它將使用 MySQL 默認值 3306。
使用這些變量啟動容器將限制 PHPMyAdmin 使用mysql.example.com服務器。系統(tǒng)會在登錄屏幕上提示您輸入用戶名和密碼,但您不需要提供主機名。
PHPMyAdmin 也可以配置為呈現多個服務器選項。提供PMA_HOSTS并PMA_PORTS以逗號分隔的連接列表來啟用此功能。
使用 MySQL Docker 容器
另一個常見用例是連接到在單獨的 Docker 容器中運行的 MySQL 或 MariaDB 服務器。您可以在端口上公開數據庫服務器,也可以將兩個容器連接到共享的 Docker 網絡。在任何一種情況下,使用PMA_HOST和PMA_PORT環(huán)境變量將指示 PHPMyAdmin 如何連接到服務器。
還支持舊版 Docker 鏈接:
docker run -d --name phpmyadmin --link my_mysql_container:db -p 8080:80 phpmyadmin
此命令允許您將 PHPMyAdmin 連接到my_mysql_container容器,而無需手動設置網絡鏈接。這個功能在 Docker 中被棄用了,所以切換到網絡命令是更可取的:
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標志通過預配置的網絡連接啟動 PHPMyAdmin :
docker run -d --name phpmyadmin --network phpmyadmin -p 8080:80 phpmyadmin
現在 PHPMyAdmin 將能夠通過共享網絡訪問 MySQL 容器。將PMA_HOST環(huán)境變量設置為172.17.0.1啟動容器時。
使用 Docker Compose 簡化部署
編寫Docker Compose 文件可以簡化重要的部署。您可以使用該docker-compose up -d命令以可重復的方式啟動一個新的 PHPMyAdmin 容器。
這是docker-compose.yml任意連接模式下的 PHPMyAdmin:
version: "3"
services:
phpmyadmin:
image: phpmyadmin:latest
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
restart: unless-stoppedDocker Compose 還可以幫助您使用全新的 MySQL 數據庫安裝和 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運行docker-compose up -d以使用完全聯網的 PHPMyAdmin 容器啟動 MySQL。PHPMyAdmin 的PMA_HOST變量設置為mysql,引用 MySQL 服務名稱。Docker Compose 自動設置主機名以匹配服務名稱,允許 PHPMyAdmin 使用共享網絡連接到 MySQL。
配置安裝
PHPMyAdmin Docker 映像支持用戶提供的配置文件,您可以通過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 支持的任何配置變量。
該圖像還支持許多常見設置的環(huán)境變量。這些措施包括MEMORY_LIMIT,UPLOAD_LIMIT并且MAX_EXECUTION_TIME,每個對應于可能需要如果你使用長時間運行或復雜的查詢進行調整,PHP INI值。
敏感值,例如PMA_HOST,PMA_PASSWORD,和MYSQL_ROOT_PASSWORD,可以使用注射多克爾秘密而非純的環(huán)境變量。附加_FILE到變量的名稱,然后將值設置為容器內提供實際值的路徑。
docker run -d --name phpmyadmin -e PMA_HOST_FILE=/run/secrets/pma_host -p 8080:80 phpmyadmin
概括
PHPMyAdmin 是最流行和最著名的 MySQL 管理實用程序之一。裸機安裝為您的系統(tǒng)添加了多個依賴項,將 Apache 和 PHP 與應用程序的源代碼捆綁在一起。
在 Docker 中安裝 PHPMyAdmin 為您提供了一個隔離環(huán)境,可以使用少數 Docker CLI 命令創(chuàng)建、替換和刪除該環(huán)境。官方鏡像可以連接到可以從您的主機訪問的任何 MySQL 服務器,包括在其他 Docker 容器中運行的數據庫。
可以在官方文檔中找到有關運行和使用 PHPMyAdmin 的更詳細指南。查看安全指南尤其重要,這樣您就不會無意中讓您的數據庫面臨外部攻擊的風險。在暴露給外界的容器中部署 PHPMyAdmin 時,您還應該考慮Docker 安全最佳實踐。
到此這篇關于在 Docker 容器中運行 PHPMyAdmin的文章就介紹到這了,更多相關Docker 運行 PHPMyAdmin內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解利用Dockerfile構建mysql鏡像并實現數據的初始化及權限設置
本篇文章主要介紹了詳解利用Dockerfile構建mysql鏡像并實現數據的初始化及權限設置 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
詳解SpringBoot項目docker環(huán)境運行時無限重啟問題
這篇文章主要介紹了詳解SpringBoot項目docker環(huán)境運行時無限重啟問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
docker環(huán)境中websocket?通過nginx代理不通解決方案
這篇文章主要介紹了docker環(huán)境中websocket?通過nginx代理不通解決方案,下面是一些可能會導致?WebSocket?代理失敗的問題以及相應的解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05

