【问题标题】:How Can Run Phpmyadmin, Mysql and Apache Tomcat with Docker-Compose File?如何使用 Docker-Compose 文件运行 Phpmyadmin、Mysql 和 Apache Tomcat?
【发布时间】:2019-05-31 20:44:33
【问题描述】:

我正在尝试运行 java web 应用程序。因此,我必须设置 MySQL、phpmyadmin 和 Apache Tomcat 才能访问网站。我想使用 docker 及其 docker-compose 应用程序来简化安装(如果我可以学习的话)。

我无法将mysqlphpmyadmin 应用程序设置为一起工作。如果我能通过这第一步,我会尝试安装tomcat

这是我使用的代码(docker-compose.yml)

version: '2'
services:
    db:
        image: mysql
        restart: always
        ports:
            - "3306:3306"
        environment:
            MYSQL_DATABASE: myDb
            MYSQL_USER: admin
            MYSQL_PASSWORD: 12345
            MYSQL_ROOT_PASSWORD: root
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
        - "8080:80"
        environment:
            MYSQL_USER: admin
            MYSQL_PASSWORD: 12345
            MYSQL_ROOT_PASSWORD: root
        depends_on: 
            - db
        links:
            - db

我在命令行应用程序中用docker-compose up打开以上代码。

我要去http://localhost:8080/页面,我正在输入admin作为用户名,12345作为密码。

我得到的错误是:

Cannot log in to MySQL server
mysqli_real_connect (): The server requested authentication method
mysqli_real_connect (): (HY000 / 2054): The server requested authentication method

如何使用docker-compose 安装应用程序(mysqlphpmyadmintomcat)?

【问题讨论】:

  • 您可以尝试使用 bash 从php-admin 容器登录/访问db 容器吗?
  • 我尝试了一些代码,但没有实现。我想,我的代码是错误的。你能建议一个代码吗?我该怎么做?
  • @PPShein 我使用此代码 docker exec -it desktop_db_1 /bin/bash 从 docker 进入 bash 屏幕,我尝试使用此代码 mysql -uroot -prootmysql -uadmin -p12345 连接内部,我成功访问但我仍然无法访问http://localhost:8080/

标签: docker docker-compose


【解决方案1】:

目前phpmyadmin 和MySQL 可以一起工作。解决了。​​

A 计划: 这是我的docker-compose.yml 文件:

version: '2'
services:
    db:
        container_name: db
        image: mysql
        restart: always
        ports:
            - "3306:3306"
        environment:
            MYSQL_DATABASE: myDb
            MYSQL_USER: admin
            MYSQL_PASSWORD: 12345
            MYSQL_ROOT_PASSWORD: root
        command: --default-authentication-plugin=mysql_native_password
    phpmyadmin:
        depends_on: 
            - db
        container_name: phpmyadmin
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
            - "8080:80"
        environment:
            MYSQL_USER: admin
            MYSQL_PASSWORD: 12345
            MYSQL_ROOT_PASSWORD: root
            PMA_HOST: db

现在,您可以通过phpmyadminhttp://localhost:8080 进入MySQL

也可以用这个方法解决。

B 计划:这是我的docker-compose.yml 文件:

version: '2'
services:
    db:
        container_name: db
        image: mysql
        restart: always
        ports:
            - "3306:3306"
        environment:
            MYSQL_DATABASE: myDb
            MYSQL_USER: admin
            MYSQL_PASSWORD: 12345
            MYSQL_ROOT_PASSWORD: root
    phpmyadmin:
        depends_on: 
            - db
        container_name: phpmyadmin
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
            - "8080:80"
        environment:
            MYSQL_USER: admin
            MYSQL_PASSWORD: 12345
            MYSQL_ROOT_PASSWORD: root
            PMA_HOST: db

命令行的命令:

$ docker stop phpmyadmin
$ docker exec -it db bash
$ mysql -u root -proot
$ ALTER USER root IDENTIFIED WITH mysql_native_password BY 'root';
$ exit
$ exit
$ docker start phpmyadmin

现在,您可以通过phpmyadminhttp://localhost:8080 进入MySQL

参考:phpMyAdmin on MySQL 8.0

【讨论】:

  • 在这个问题中没有 tomcat ......但是计划 A 和计划 B 都在工作。非常适合初学者 docker 的教育练习。
【解决方案2】:
version: '3.1'
    services:
      db:
        image: mysql
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        ports:
          - 3307:3306
        environment:
          MYSQL_ROOT_PASSWORD: 1234
      phpmyadmin:
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
          - 8080:80
        environment:
          MYSQL_ROOT_PASSWORD: 1234
        links:
          - db

【讨论】:

  • 欢迎来到 SO。如果您可以描述您所做的更改以及您认为它如何回答问题,那就太好了。
猜你喜欢
  • 2020-09-08
  • 2020-10-12
  • 2020-06-19
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
  • 2018-12-03
相关资源
最近更新 更多