前置条件

  • docker:Docker CE 基于CentOS在线安装
  • docker-compos:

    基于容器运行服务

    创建相关路径

  • 创建docker-compose存放路径并进入

    1. mkdir -p /usr/local/docker/mysql
  • 创建数据存储路径

    1. mkdir -p /var/local/mysql/data
  • 创建日志存储路径

    1. mkdir -p /var/local/mysql/logs

    编辑启动文件

  • 切换路径

    1. cd /usr/local/docker/mysql
  • 编写docker-compose.yml

    1. vi docker-compose.yml
    1. version: '3.7'
    2. services:
    3. mysql:
    4. image: mysql
    5. container_name: mysql
    6. command:
    7. # MySQL8的密码验证方式默认是 caching_sha2_password,但是很多的连接工具还不支持该方式
    8. # 就需要手动设置下mysql的密码认证方式为以前的 mysql_native_password 方式
    9. --default-authentication-plugin=mysql_native_password
    10. --character-set-server=utf8mb4
    11. --collation-server=utf8mb4_general_ci
    12. --explicit_defaults_for_timestamp=true
    13. --lower_case_table_names=1
    14. # docker的重启策略:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
    15. restart: unless-stopped
    16. environment:
    17. MYSQL_ROOT_PASSWORD: root # root用户的密码
    18. MYSQL_USER: test # 创建新用户
    19. MYSQL_PASSWORD: test # 新用户的密码
    20. ports:
    21. - 3306:3306
    22. volumes:
    23. - /var/local/mysql/data:/var/lib/mysql
    24. - /var/local/mysql/logs:/logs
    25. - /usr/local/docker/mysql/conf:/etc/mysql/conf.d

    运行容器

  • 控制台运行容器

    1. docker-compose -f /usr/local/docker/mysql/docker-compose.yml up

    注:如果控制台运行正常,可以执行 ctrl+c 结束控制台运行,并在后台运行容器

  • 后台运行容器

    1. docker-compose -f /usr/local/docker/mysql/docker-compose.yml up -d
  • 停止容器运行

    1. docker-compose -f /usr/local/docker/mysql/docker-compose.yml down