Docker 安装 MySQL
通过 Docker 搭建 MySQL 数据库环境,同时能同时启动多个 MySQL 版本。在安装前,最好上 docker 官网上看一下 MySQL 的版本,更具具体需求版本安装 MySQL,假设你已经搭建好 Docker 环境下面介绍如何创建一个 MySQL 服务器实例。
快速启动一个 MySQL 服务实例
下面,我们通过通过 docker 镜像,或者 MySQL 官方镜像,进行快速启动一个实例。
$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9968 [OK]
# MySQL 官方镜像
$ docker image pull mysql:8.0.21
拉取镜像成功以后,就可以在本机看到这个 image
文件了。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0.21 e1d7dc9731da 6 days ago 544MB
现在,快速运行这个 image
文件。
# Docker 官方镜像
$ docker run --name mysql8 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=admin \
--rm \
-d mysql:8.0.21 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
上面命令的各个参数含义如下:
--name mysql8 容器的名字叫做 mysql8
-
-p 3306:3306
容器 MySQL 默认端口3306
射到本机的3306
端口。 -
-d
在后台运行容器并打印容器ID。 -
--rm
停止运行后,自动删除容器文件。 -
-e MYSQL_ROOT_PASSWORD=admin
设置环境变量MYSQL_ROOT_PASSWORD
值为admin
来设置root
密码,更多环境变量参考。 -
--character-set-server=utf8mb4 --collation-server=utf8mb4_col
该命令以默认字符集utf8mb4
和数据库默认排序规则utf8mb4
启动MySQL
服务,可以将许多配置选项作为标志传递给 mysqld。这将使您可以灵活地自定义容器,而无需cnf
配置文件,配置MySQL Server
的另一种方法是准备一个配置文件,并将其安装在容器内服务器配置文件的位置。有关详细信息,请参见持久数据和配置更改。
查看容器运行状态
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bce9df21fb98 mysql:8.0.21 "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
使用 docker-compose 部署MySQL
编辑 docker-compose
文件
version: "3.1"
services:
db:
image: mysql:8.0.21
container_name: mysql8
command: --default-authentication-plugin=mysql_native_password
restart: always
ports:
- 3306:3306
volumes:
- ./conf/my.cnf:/etc/my.cnf
- ./data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: admin
运行容器
$ docker-compose up -d
Creating network "docker-mysql_default" with the default driver
Creating mysql8 ... done
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dedd71769326 mysql:8.0.21 "docker-entrypoint.s…" 9 seconds ago Up 4 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8