Docker 安装 MySQL
MySQL 是世界上最受欢迎的开源数据库。凭借其可靠性、易用性和性能,MySQL 已成为 Web 应用程序的数据库优先选择。
1、查看可用的 MySQL 版本
访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags 。
可以通过 Sort by
查看其他版本的 MySQL
,默认是最新版本 mysql:latest
。
你也可以在下拉列表中找到其他你想要的版本:
此外,我们还可以用 docker search mysql
命令来查看可用版本:
$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 2529 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 161 [OK]
centurylink/mysql Image containing mysql. Optimized to be li... 45 [OK]
sameersbn/mysql 36 [OK]
google/mysql MySQL server for Google Compute Engine 16 [OK]
appcontainers/mysql Centos/Debian Based Customizable MySQL Con... 8 [OK]
marvambass/mysql MySQL Server based on Ubuntu 14.04 6 [OK]
drupaldocker/mysql MySQL for Drupal 2 [OK]
azukiapp/mysql Docker image to run MySQL by Azuki - http:... 2 [OK]
...
2、拉取 MySQL 镜像
这里我们拉取官方的最新版本的镜像:
$ docker pull mysql:latest
3、查看本地镜像
使用以下命令来查看是否已安装了 mysql:
$ docker images
在上图中可以看到我们已经安装了最新版本(latest)的 mysql 镜像。
4、运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
参数说明:
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过
宿主机ip:3306
访问到 MySQL 的服务。 - MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
5、安装成功
通过 docker ps
命令查看是否安装成功:
本机可以通过 root
和密码 123456
访问 MySQL
服务。
# 查看已启动的服务
systemctl list-units --type=service
# 查看是否设置开机启动
systemctl list-unit-files | grep enable
# 设置开机启动
systemctl enable docker.service
# 关闭开机启动
systemctl disable docker.service
docker image pull mysql:5.7.28
# docker容器设置自动启动
# 启动时加--restart=always
docker run -id --restart=always -e MYSQL_ROOT_PASSWORD=2019@eagle --name mysql -v /mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -p 3306:3306 mysql:5.7.28
# 如果已经过运行的项目
docker container update --restart=always mysql
no 默认策略,在容器退出时不重启容器
on-failure 在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3 在容器非正常退出时重启容器,最多重启3次
always 在容器退出时总是重启容器
unless-stopped 在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
Flag Description
no 不自动重启容器. (默认value)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
No Comments