如何使用 Docker-Compose File 运行 Phpmyadmin、Mysql 和 Apache Tomcat



我正在尝试运行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)?

目前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

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

也可以用这种方法来解决。

计划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

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

参考:MySQL 8.0上的phpMyAdmin

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

最新更新