docker安装mysql、redis、nginx、elasticSearch 服务
建议:使用任何容器参考 dockerhub官方网站 + 搜索引擎(百度 google)
安装mysql
-
拉取mysql镜像到本地
docker pull mysql:tag
(tag不加默认最新版本)
docker pull mysql:8.0.20
-
运行mysql服务
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:tag
--没有暴露外部端口外部不能连接docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:tag
--没有暴露外部端口docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:8.0.20 --restart=always
--没有暴露外部端口,总是运行docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d --restart=always -v /root/data:/var/lib/mysql mysql:8.0.20
--数据卷持久化数据到宿主机
-e
: enviroment 环境
-d
: 后台运行
--restart=always
: 只要docker引擎启动,容器会自动重启
docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:8.0.20 --restart=always
docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d --restart=always -v /root/data:/var/lib/mysql mysql:8.0.20
- 进入mysql容器
docker exec -it 容器名称|容器id bash
mysql -u root -p
-
外部查看mysql日志
docker logs 容器名称|容器id
-
通过其他客户端访问 如在window系统|macos系统使用客户端工具访问
-
执行sql文件到mysql中
docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/xxx.sql
docker 运行mysql容器数据备份
在使用mysql容器时数据卷虽然能备份数据
注意: 数据卷将数据库底层文件系统进行的备份 不利于数据迁移和备份 推荐使用sql文件形式备份数据
在mysql导出sql文件来备份数据
- 利用mysql官方提供命令 mysqldump
- docker exec mysql|容器id sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql ----导出全部数据
>
代表要把信息输出到哪个文件 - docker exec mysql sh -c 'exec mysqldump --databases 库名 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql ----导出指定库数据
- docker exec mysql sh -c 'exec mysqldump --no-data --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql ----导出指定库数据不要数据
- 使用navicat提供数据备份
直接在对应库中选择备份的表即可,导出即可
执行sql文件到mysql中
docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/xxx.sql