Docker - 无法更改 phpmyadmin 的默认密码

El *_*bre 3 docker

在 docker compose 文件中我有 phpmyadmin,像这样

 phpmyadmin:
        image: phpmyadmin/phpmyadmin
        hostname: 'phpmyadmin'
        container_name: 'phpmyadmin'
        links:
          - database:db
        environment:
            MYSQL_USER: root
            MYSQL_PASSWORD: secret
            MYSQL_ROOT_PASSWORD: secret
        ports:
          - 8000:80
Run Code Online (Sandbox Code Playgroud)

当我使用此密码和用户尝试登录 phpmyadmin 时,返回未授权。那么,如何更改 phpmyadmin docker 的默认用户和密码?

小智 6

来自https://hub.docker.com/r/phpmyadmin/phpmyadmin/

phpMyAdmin 使用您的 MySQL 服务器凭据进行连接。请检查相应的数据库服务器映像,以获取有关默认用户名和密码或如何在安装过程中指定您自己的自定义凭据的信息。

可以使用 MYSQL_* 环境变量在 MySQL docker 容器中定义 MySQL 服务器凭据。以下是来自 dockerhub 网站的 docker-compose 示例:

version: '3.1'

services:
  db:
    image: mariadb:10.3
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: notSecureChangeMe

  phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      PMA_ARBITRARY: 1
Run Code Online (Sandbox Code Playgroud)

在这里,您可以使用密码“notSecureChangeMe”(服务器:db)以 root 身份登录 phpmyadmin。

如果您想直接登录 phpmyadmin 而不提供用户名和密码,那么您需要使用配置身份验证模式(https://docs.phpmyadmin.net/en/release_5_0_4/setup.html#config-authentication-mode)并提供凭据在 phpmyadmin 配置文件中。

这在 docker-compose 文件中配置非常容易(通过使用 PMA_* 环境变量):

version: '3.1'

services:
  db:
    image: mariadb:10.3
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: notSecureChangeMe

  phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      PMA_HOST: 'db'
      PMA_USER: 'root'
      PMA_PASSWORD: 'notSecureChangeMe'
Run Code Online (Sandbox Code Playgroud)