首先要安装 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 聊聊, 查看更多联系方式