SoFunction
Updated on 2025-03-10

3 ways to deploy mysql+phpmyadmin in docker

Docker deploy mysql+phpmyadmin method

Method 1: link

# Create container test-mysql (don't use mysql:latest, it will cry)# docker run --name test-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
06b011faec62        mysql:5.6        "docker-entrypoint..."   2 seconds ago       Up 1 second         0.0.0.0:3306->3306/tcp   test-mysql

# Create container test-phpmyadmin# docker run --name test-phpmyadmin -p 8080:80 --link test-mysql:db -d phpmyadmin/phpmyadmin:latest
# docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                            NAMES
61d649adb46f        phpmyadmin/phpmyadmin:latest   "/ superviso..."   3 seconds ago       Up 1 second         9000/tcp, 0.0.0.0:8080->80/tcp   test-phpmyadmin
06b011faec62        mysql:5.6                   "docker-entrypoint..."   2 minutes ago       Up 2 minutes        0.0.0.0:3306->3306/tcp           test-mysql

Method 2: network

# Create a network net-mysql# docker network create net-mysql

# Create a container test-mysql and join the network net-mysql# docker run --restart always --name test-mysql -e MYSQL_USER=root -e MYSQL_PASSWORD=root -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 --network net-mysql -d mysql:5.6

# Create a container test-phpmyadmin and join the network net-mysql# docker run --name test-phpmyadmin -e MYSQL_USER=root -e MYSQL_PASSWORD=root -e MYSQL_ROOT_PASSWORD=root -e PMA_HOST=test-mysql -p 8080:80 --network net-mysql -d phpmyadmin/phpmyadmin:latest

# docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS                  PORTS                            NAMES
3360662bd083        phpmyadmin/phpmyadmin:latest   "/ superviso..."   12 seconds ago      Up 5 seconds            9000/tcp, 0.0.0.0:8080->80/tcp   test-phpmyadmin
134c981b41f3        mysql:5.6                      "docker-entrypoint..."   19 seconds ago      Up Less than a second   0.0.0.0:3306->3306/tcp           test-mysql

Method 3:

content:

version: "2"
services:
  mysql:
    image: mysql:5.6
    container_name: test-mysql
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_USER: "root"
      MYSQL_PASSWORD: "root"
      MYSQL_ROOT_PASSWORD: "root"
    networks:
      - net-mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: test-phpmyadmin
    ports:
      - "8080:80"
    environment:
      MYSQL_USER: "root"
      MYSQL_PASSWORD: "root"
      MYSQL_ROOT_PASSWORD: "root"
      PMA_HOST: test-mysql
    networks:
      - net-mysql

networks:
  net-mysql:
# docker-compose up -d
# docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                            NAMES
a1fdbba2ee85        phpmyadmin/phpmyadmin:latest   "/ superviso..."   12 seconds ago      Up 9 seconds        9000/tcp, 0.0.0.0:8080->80/tcp   test-phpmyadmin
61f4177a92f1        mysql:5.6                      "docker-entrypoint..."   12 seconds ago      Up 10 seconds       0.0.0.0:3306->3306/tcp           test-mysql

Open a browser

enterlocalhost:8080Now accessiblephpmyadmininterface

All account passwordsroot

Summarize

The above is personal experience. I hope you can give you a reference and I hope you can support me more.