docker compose 安装 MySQL 8.0

更新日期: 2024-06-13 阅读次数: 1147 字数: 561 分类: docker

首先要安装 docker,参考 Ubuntu Server 24.04 LTS 安装 docker

然后创建一个新目录,在目录下新建一个 docker-compose.yaml 文件。 配置文件内容如下:

docker-compose.yaml

services:
  mysql:
    image: mysql:8.0
    ports:
      - 3306:3306
    volumes:
      - ~/apps/mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=xxx
      - MYSQL_DATABASE=test
      - MYSQL_USER=test
      - MYSQL_PASSWORD=xxx

注:

  • ports:端口配置语法通常采用 "HOST:CONTAINER" 的格式,其中 "HOST" 指的是主机上的端口,而 "CONTAINER" 指的是容器内部的端口。这个语法意味着 Docker 会将主机上的端口映射到容器内的端口。而如果不想将 3306 端口对外开放,可以直接写为 3306,而不是 3306:3306。
  • volumns: 是将容器中的 /var/lib/mysql 目录挂载到了宿主机的 ~/app/mysql 目录。而 /var/lib/mysql 目录是 MySQL 默认的写入数据文件的目录。即,存储的数据会保存到宿主机的 ~/app/mysql 目录。
  • environment: 环境变量,MYSQL_ROOT_PASSWORD 设置的是默认的 root 账号密码。MYSQL_DATABASE,MYSQL_USER,MYSQL_PASSWORD 这三个是可选设置,分别代表默认创建的数据库名,及这个数据库对应的超级管理员账号及密码。

拉取镜像并运行容器

docker compose up -d

-d 参数是将运行容器在 detached 模式。不会因为断开远程连接而导致容器关闭。

查看运行中的容器

docker compose ps

这个跟 linux 中的 ps 命令类似。输出结果:

NAME              IMAGE       COMMAND                  SERVICE   CREATED          STATUS          PORTS
xxx-mysql-1   mysql:8.0   "docker-entrypoint.s…"   mysql     39 seconds ago   Up 38 seconds   33060/tcp, 0.0.0.0:32768->3306/tcp, :::32768->3306/tcp

登录 docker 中的 mysql

输入:

docker compose exec mysql /bin/bash

即可看到 docker 中的 shell 提示,然后输入对应的 mysql 客户端命令即可进入 mysql。跟在正常 linux 宿主机中使用 mysql 命令是完全一样的。

bash-5.1# mysql -uroot -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.37 MySQL Community Server - GPL

最后

在使用一个 docker 镜像之前,一定要详细阅读这个镜像的说明文档。例如:

https://hub.docker.com/_/mysql/

因为里面涉及很多的配置(环境变量)跟操作说明,跟在宿主机中直接安装 mysql 完全是两回事。比如,数据的备份及导入。

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式