docker部署mysql5.7


docker部署mysql与传统方式对比

1、传统方式:

在linux上直接使用yum安装 或者mysql官网下载 tar.gz安装,使用tar.gz可能还要
自己手动解决依赖问题,yum安装虽然解决了依赖问题,但是随着日益增多,其他数据安装,以及开发环境,难免会引起于
其他开发环境的冲突

2、docker容器化部署

docker是基于linux容器技术发展而来,而linux容器技术能做到进程
隔离,从而使得各个服务的部署独立,互不干扰,使用docker部署mysql,还可以部署在同一台服务器上部署不同版本的
mysql,而互不影响,比起传统方式,既不用担心依赖,也不用担心开发环境不同而造成影响

docker化mysql步骤

安装docker

centOS 直接使用yum install docker安装

debian系列:使用 apt-get install docker

拉去dockerhub mysql官方镜像

docker pull mysql:5.7

下载完成后 ,使用docker images 查看当前所有镜像 如下所示:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 383867b75fd2        7 days ago          373MB
mongo               latest              cdc6740b66a7        5 weeks ago         361MB

可以看到 TAG 下面标着 5.7, 即mysql的5.7版本

运行mysql5.7镜像

docker run -v ${pwd}/mysql:/var/lib/mysql –name mysql5.7 -d -e MYSQL_ROOT_PASSWORD=root
-p 3306:3306 mysql:5.7

参数解析:

-v ${pwd}/mysql:/var/lib/mysql 把容器里的/var/lib/mysql目录挂载到实体机的当前
执行此docker命令的目录下mysql上,这样容器里的数据库文件就映射到了实体机,即使容器挂掉,mysql
的数据还在

-p 3306:3306 把主机的3306 端口映射到容器的3306端口,使得可以再容器外访问mysql

-d 使容器在后太运行

-e 指定mysql容器的运行环境参数, MYSQL_ROOT_PASSWORD 可以设定mysql的root账户的密码

查看运行结果

docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
ee000f76f8fd        mongo:latest        "docker-entrypoint.s…"   2 days ago          Up About an hour    0.0.0.0:27017->27017/tcp            mongoDB
b32313af6fd9        mysql:5.7           "docker-entrypoint.s…"   3 days ago          Up About an hour    0.0.0.0:3306->3306/tcp, 33060/tcp   mysql5.7

此时,可以看到status显示 运行时间,我的已经运行了一小时,如果失败,status
会显示为 Exited ,说明容器运行失败,原因基本上是 docker run 命令参数不全或者错误导致的,这时,可以使用数据库连接工具
进行连接,也可以进入容器执行sql查看结果,本文以进入容器为例:

执行:docker exec -it ${CONTAINER ID} bash
这里填写自己的mysql容器id,-it表示以交互模式进入容器,容器内部就像是一个精简的linux,可以执行
linux基本命令

root@cyka:/docker-all-conf/mysql5.7/conf.d# docker exec -it mysql5.7 bash
root@b32313af6fd9:/# 

可以看到进入容器后@后已经变成容器id,相当于linux的host
这是可以运行 mysql -uroot -p
输入 密码后进入mysql执行sql

root@b32313af6fd9:/# mysql -uroot -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| forum-server       |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql> 

docker部署mysql5.7完成!如果想配置mysql的配置文件,可以把mysql的配置文件目录挂载,这样就可以自己配置了。


文章作者: Ubi-potato
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ubi-potato !
评论
  目录