Docker安装phpmyadmin

本文详细介绍了通过Docker安装phpMyAdmin的多种方法,包括任意连接模式、预设服务器、连接MySQL Docker容器、使用Docker Compose简化部署以及自定义配置(如注入配置文件、环境变量和Docker secrets),并提供了相关命令和示例。

作者:zhuge···预计阅读 17 分钟·1,043 阅读·0 评论
Docker安装phpmyadmin
docker search phpmyadmin
docker pull phpmyadmin
#可以连接所有mysql
docker run -d --name phpmyadmin -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin

#注意:在服务器地址中需要输入mysql所在服务器(即容器的IP地址或者mysql服务器IP),
#而不能直接为127.0.0.1,查看容器IP
docker inspect 容器名称



预设服务器

作为允许任意访问的替代方法,您可以使用预配置的服务器连接启动 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


相关文章

评论

加载中...