目录

docker-compose 部署 MySQL 和 phpMyAdmin

使用 docker-compose 部署 MySQL 及管理工具 phpMyAdmin

搭建过程

  1. 先创建自定义的 bridge 网络:

    docker network create mysql-net
    
  2. 编写docker-compose.yml文件:

    version : '3'
    services:
    # MySQL容器
    mysql_rdb:
        # 容器名
        container_name: mysql_rdb
        # 重启策略
        restart: always
        image: mysql:latest
        # 自定义的 bridge 网络
        networks:
        - mysql-net
        ports:
        # 指定 127.0.0.1,则 MySQL 无法通过其他主机访问,只能本地服务器访问,保障安全
        - "127.0.0.1:3306:3306"
        volumes:
        # 挂挂载配置文件
        - /home/jerome/mysql/conf.d:/etc/mysql/conf.d
        # 挂载数据
        - /home/jerome/mysql/data:/var/lib/mysql
        environment:
        # root 密码
        MYSQL_ROOT_PASSWORD: 123456
        TZ: Asia/Shanghai
    # phpmyadmin容器
    mysql_rdb_manage:
        container_name: mysql_rdb_manage
        image: phpmyadmin:latest
        # 端口号映射,后续需要通过 http://yourip:13306 访问 phpMyAdmin
        ports:
        - 13306:80
        environment:
        # 指定要连接的数据库,使用 MySQL 的容器名称
        - PMA_HOST=mysql_rdb
        # 指定要连接数据库的端口
        - PMA_PORT=3306
        depends_on:
        # 依赖 MySQL 容器
        - mysql_rdb
        networks:
        # 自定义的 bridge 网络
        - mysql-net
        deploy:
        resources:
            limits:
            memory: 500M
        restart: always
    networks:
    # 自定义的 bridge 网络
    mysql-net:
        external: true
    

    注意:

    • 需要确保 /home/jerome/mysql/conf.d/home/jerome/mysql/data 目录已提前创建好。
    • root 密码需要修改为个人的密码。
  3. 将上方的 docker-compose.yml 放到服务器的指定目录下,如 /home/jerome/build_mysql_phpmyadmin_docker

  4. 启动使用 docker compose 命令启动:

    docker-compose up -d
    
  5. 启动后,访问登陆页 http://ip:13306,其中 ip 地址换成自己服务器的 IP。页面如下:

./phpmyadmin_login_page.jpg
phpMyAdmin登录页面

此时,输入 root 及 docker-compose.yaml 中配置的 root 密码,即可登录。

常见问题

http://ip:13306 无法访问

  1. 通过 docker ps -a 命令确认容器是否创建成功,并且正在运行?
  2. 确认自己服务器是否开放了 13306 端口?在腾讯云、阿里云购买的服务器默认并不会开放该端口,需要手动添加网络策略。