Docker 安装mysql

作者:xcbeyond
疯狂源自梦想,技术成就辉煌!微信公众号:《程序猿技术大咖》号主,专注后端开发多年,拥有丰富的研发经验,乐于技术输出、分享,现阶段从事微服务架构项目的研发工作,涉及架构设计、技术选型、业务研发等工作。对于Java、微服务、数据库、Docker有深入了解,并有大量的调优经验。












目录

1、拉取镜像

2、配置mysql

3、mysql连接验证

1、拉取镜像
从docker仓库拉取mysql 5.7版本的镜像。

[docker@xcbeyond ~]$ docker pull mysql:5.7
5.7: Pulling from library/mysql
be8881be8156: Pull complete
c3995dabd1d7: Pull complete
9931fdda3586: Pull complete
bb1b6b6eff6a: Pull complete
a65f125fa718: Pull complete
2d9f8dd09be2: Pull complete
37b912cb2afe: Pull complete
faf9da46e0cf: Pull complete
ffcedc9e8600: Pull complete
6e11f2447e86: Pull complete
02243b284270: Pull complete
Digest: sha256:e25e2768e910223db3095c1560aa2255371986b24fbebf4b015bae3cc60b9b34
Status: Downloaded newer image for mysql:5.7
2、配置mysql
(1)创建mysql目录,用于存放mysql相关配置及数据。

[docker@xcbeyond ~]$ mkdir mysql
[docker@xcbeyond ~]$ cd mysql/
[docker@xcbeyond mysql]$ pwd
/home/docker/mysql
(2)运行并启动MySQL容器,即:配置mysql,并启动mysql。

[docker@xcbeyond mysql]$ docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
306803948d307424b509abde434a9972b239a02aa0a8ba0945b05b0052613372
[docker@xcbeyond mysql]$ ll
total 12
drwxr-xr-x 2 root root 4096 Aug 31 23:39 conf
drwxr-xr-x 2 polkitd input 4096 Aug 31 23:39 data
drwxr-xr-x 2 root root 4096 Aug 31 23:39 logs
说明:

-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
 

查看mysql容器情况:

[docker@xcbeyond mysql]$ pwd
/home/docker/mysql
[docker@xcbeyond mysql]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
306803948d30 mysql:5.7 "docker-entrypoint..." 35 seconds ago Up 34 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
mysql的启动、停止、重启命令如下:

(即:容器的启动、停止、重启)

docker start/stop/restart 容器id/容器name

3、mysql连接验证
验证下mysql安装配置是否成功。

使用工具Navicat,新建连接,连接测试。