Docker 部署 MySQL 数据库
MySQL 是一种开源关系型数据库管理系统,支持大多数 SQL 标准。它是最流行的关系型数据库之一,广泛用于建立 Web 应用程序后端。
MySQL 允许用户创建、查询、更新和删除数据库中的数据。它还支持事务,允许用户回滚或提交对数据库的修改。
MySQL 支持大量数据类型,包括常见的数值、字符串和日期类型。它也支持存储过程和触发器,使用户能够在数据库中编写复杂的逻辑。
MySQL 可以在多种操作系统上运行,包括 Linux、Windows 和 macOS。它可以通过多种编程语言(如 Python、Java 和 PHP)连接,并且可以使用多种数据库管理工具(如 MySQL Workbench)来管理数据库。
DockerHub: mysql | DockerHub
Docker-Compose
stack.yml
version: "3.1"
services:
mysql:
image: mysql:5.7
container_name: "some-mysql"
# NOTE: use of "mysql_native_password" is not recommended: https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password
# (this is just an example, not intended to be a production configuration)
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: database_name
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
volumes:
- ./mysql-data:/var/lib/mysql
ports:
- "3306:3306"
adminer:
image: adminer
restart: always
ports:
- 8080:8080
运行 docker-compose -f stack.yml up 启动服务,访问 http://localhost:8080 或者 http://host-ip:8080 进入管理页面。
常用命令:
- 启动:
docker-compose -f stack.yml up - 后台启动:
docker-compose -f stack.yml up -d - 检查状态:
docker-compose ps - 停止:
docker-compose -f stack.yml stop - 停止并删除:
docker-compose -f stack.yml down - 查看日志:
docker logs some-mysql
Docker
$ docker run -itd --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -v /my/own/datadir:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
some-mysql容器名称my-secret-pw设置的 root 用户的密码-p是指定宿主端口:容器内服务端口,默认3306-v设置数据库文件的映射,把宿主机上的目录/my/own/datadir与容器内的/var/lib/mysql作关联关系