在 Docker 容器中运行 PHPMyAdmin的详细步骤

目录
  • 基本用法
  • 预设服务器
  • 使用 MySQL Docker 容器
  • 使用 Docker Compose 简化部署
  • 配置安装
  • 概括

PHPMyAdmin是 MySQL 和 MariaDB 数据库的流行管理界面。它允许您使用 Web 浏览器与您的模式、表和数据进行交互。phpMyAdmin能够为你的MySQL提供直观、方便的Web管理界面,非常好用。

该项目有一个官方的 Docker 镜像,它简化了在容器化环境中的部署。以下是如何使用图像快速运行新的 PHPMyAdmin 实例。

基本用法

最简单的安装让 PHPMyAdmin 容器连接到任何可访问的数据库服务器:

docker run -d --name phpmyadmin -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin

此命令在端口 8080 上启动 PHPMyAdmin。localhost:8080在浏览器中访问以查看登录屏幕。环境变量的存在会PMA_ARBITRARY导致显示服务器连接表单。指定要登录的 MySQL 或 MariaDB 数据库的主机和用户凭据。

当您使用此方法时,您通常会看到一个 PHPMyAdmin 警告“某些扩展功能已被停用”。当您连接的服务器没有名为phpmyadmin. PHPMyAdmin 使用这个模式来存储它自己的配置数据。

按照警告链接“创建数据库”完成安装。您的用户帐户将需要在服务器上创建新数据库的权限。

预设服务器

作为允许任意访问的替代方法,您可以使用预配置的服务器连接启动 PHPMyAdmin 容器。提供PMA_HOSTandPMA_PORT环境变量而不是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服务器。系统会在登录屏幕上提示您输入用户名和密码,但您不需要提供主机名。

PHPMyAdmin 也可以配置为呈现多个服务器选项。提供PMA_HOSTS并PMA_PORTS以逗号分隔的连接列表来启用此功能。

使用 MySQL Docker 容器

另一个常见用例是连接到在单独的 Docker 容器中运行的 MySQL 或 MariaDB 服务器。您可以在端口上公开数据库服务器,也可以将两个容器连接到共享的 Docker 网络。在任何一种情况下,使用PMA_HOST和PMA_PORT环境变量将指示 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环境变量设置为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-stopped

Docker Compose 还可以帮助您使用全新的 MySQL 数据库安装和 PHPMyAdmin 容器创建堆栈:

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 支持的任何配置变量。

该图像还支持许多常见设置的环境变量。这些措施包括MEMORY_LIMIT,UPLOAD_LIMIT并且MAX_EXECUTION_TIME,每个对应于可能需要如果你使用长时间运行或复杂的查询进行调整,PHP INI值。

敏感值,例如PMA_HOST,PMA_PASSWORD,和MYSQL_ROOT_PASSWORD,可以使用注射多克尔秘密而非纯的环境变量。附加_FILE到变量的名称,然后将值设置为容器内提供实际值的路径。

docker run -d --name phpmyadmin -e PMA_HOST_FILE=/run/secrets/pma_host -p 8080:80 phpmyadmin

概括

PHPMyAdmin 是最流行和最著名的 MySQL 管理实用程序之一。裸机安装为您的系统添加了多个依赖项,将 Apache 和 PHP 与应用程序的源代码捆绑在一起。

在 Docker 中安装 PHPMyAdmin 为您提供了一个隔离环境,可以使用少数 Docker CLI 命令创建、替换和删除该环境。官方镜像可以连接到可以从您的主机访问的任何 MySQL 服务器,包括在其他 Docker 容器中运行的数据库。

可以在官方文档中找到有关运行和使用 PHPMyAdmin 的更详细指南。查看安全指南尤其重要,这样您就不会无意中让您的数据库面临外部攻击的风险。在暴露给外界的容器中部署 PHPMyAdmin 时,您还应该考虑Docker 安全最佳实践。

到此这篇关于在 Docker 容器中运行 PHPMyAdmin的文章就介绍到这了,更多相关Docker 运行 PHPMyAdmin内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker部署LNMP&phpMyAdmin的方法步骤

    环境准备: 在一台主机上部署lnmp,基于多个容器: nginx服务:172.16.10.10 mysql服务:172.16.10.20 php服务:172.16.10.30 解决容器固定ip地址问题: 注意:因为当容器停止时或者将容器删除,再次运行相同的容器,它的ip地址不再时原来的地址,所以我们需要自定义一个网段,来指定容器的ip地址. 项目操作: (1) 首先自定义一个网络: [root@sqm-docker01 ~]# docker network create -d bridge --

  • 在 Docker 容器中运行 PHPMyAdmin的详细步骤

    目录 基本用法 预设服务器 使用 MySQL Docker 容器 使用 Docker Compose 简化部署 配置安装 概括 PHPMyAdmin是 MySQL 和 MariaDB 数据库的流行管理界面.它允许您使用 Web 浏览器与您的模式.表和数据进行交互.phpMyAdmin能够为你的MySQL提供直观.方便的Web管理界面,非常好用. 该项目有一个官方的 Docker 镜像,它简化了在容器化环境中的部署.以下是如何使用图像快速运行新的 PHPMyAdmin 实例. 基本用法 最简单的安

  • 在Docker容器中使用Arthas的详细步骤

    Arthas(阿尔萨斯) 能为你做什么? Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?

  • Docker容器中运行flume及启动不输出运行日志问题

    flume配置文件如下: # Name the components on this agent app1.sources = r1 app1.sinks = k1 app1.channels = c1 # Describe/configure the source app1.sources.r1.type = avro app1.sources.r1.bind = 0.0.0.0 app1.sources.r1.port = 44444 # Describe the sink #a1.sink

  • Docker容器中运行nginx

    nginx简介 Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势.与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强.整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活. 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高.同时Nginx在OpenBSD或FreeBSD

  • 详解在Docker容器中运行Spring Boot应用

    spring Boot简化了Spring应用的开发过程,遵循约定优先配置的原则提供了各类开箱即用(out-of-the-box)的框架配置.另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包是一个可以独立运行的部署单元.基于以上特性,现在普遍认为Spring Boot提供了一种快速构造微服务(Micro-Service)的能力. Docker与Spring Boot Docker是一种Linux容器的实现,Linux容器是基于进程的轻量级资源隔离技术,每一个

  • Docker中Dockerfile之容器中运行MyEclipse搭建的JavaWeb项目

    这篇文章将讲述如何将上一篇文章中的Javaweb项目制作成Docker的镜像.小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 应用程序在Docker容器中运行和在物理机运行的原理是一样的,所以我们部署这个Javaweb项目到Docker中的步骤应该如下: 服务器支持(这里选择Centos7) 安装Java环境 安装Tomcat环境 将Tomcat根目录下的webapps/ROOT目录下的所有文件(夹)删除 将自己开发的web项目的WebRoot目录下的所有文件(夹)复

  • k3d入门指南之在Docker中运行K3s的详细教程

    什么是k3d? k3d是一个小型程序,用于在Docker中运行K3s集群. K3s是经过CNCF认证的轻量级Kubernetes发行和沙箱项目.它是为资源有限环境设计的,被打包为单个二进制文件,所需RAM小于512MB. 要了解有关K3s的更多信息,请查看我们之前的公众号文章及B站上的视频. k3d借助从K3s仓库构建的Docker镜像在安装了Docker的任何机器上的Docker容器中启动多个K3s节点. 这样,一台物理(或虚拟)机(称为Docker Host)可以运行多个K3s集群,每个集群

  • 在Docker容器中不需要运行sshd的原因浅析

    当开始使用Docker时,人们经常问:"我该如何进入容器?",其他人会说"在你的容器里运行一个SSH服务器".但是,从这篇博文中你将会了解到你根本不需要运行SSHd守护进程来进入你的容器.当然,除非你的容器就是一个SSH服务器. 运行SSH服务器是很想当然的,因为它提供了进入容器的简便方式.在我们公司基本上每个人都最少使用过一次SSH.我们中有很大一部分人每天都会使用它,并且他们很熟悉公钥与私钥,无密码登录,密钥代理,甚至有时会使用端口转发和其他不常用的功能.正因如

  • 详解挂载运行的docker容器中如何挂载文件系统

    前言 感觉最近很多人都在问docker相关的问题,关于怎么操作一个已经启动的docker容器的文件系统,首先我发现这非常困难,因为 mnt的命名空间. 为了登录进入一个已经启动的docker容器,我们需要这么做: 使用nsenter来在临时挂载点上挂载整个docker容器的文件系统. 创建一个特定目录的绑定挂载来当作卷来使用. 卸载临时挂载. 好吧,开始实践. 启动一个名为charlie的docker实例: $ docker run --name charlie -ti ubuntu bash

  • Node.js web 应用如何封装到Docker容器中

    小小又开始学习新的内容了.这次学习的是,把一个Node.js 应用封装到Docker容器,完成本教程的前提是拥有一个可以安装的,已经正常可以工作的Docker.以及对Node.js应用如何工作,有一个大致的了解. 本教程的第一部分,需要创建一个Web应用程序,然后为这个应用程序构建一个Docker镜像,最后把这个镜像作为容器进行运行. Docker允许应用对依赖进行打包完成一个标准化的单元,这是一个容器,对于应用而言,Docker被称为一个标准的Linux操作系统,一个镜像是进行加载到容器的软件

随机推荐