Ubuntu16.04 + docker + MySQL 避坑指南

本文档详细记录了在Ubuntu16.04上使用Docker安装和配置MySQL8.0.23的过程,包括拉取镜像、创建挂载目录、运行容器、设置端口映射和数据持久化、检查容器状态、连接MySQL以及容器的启停和删除操作。特别提醒,连接MySQL时需使用容器的IP地址而非localhost。
摘要由CSDN通过智能技术生成


马蛋!!!!
本来不想写这一篇!!!
但在ubuntu上安装docker+mysql,没有看指南来就被坑了一个下午!!
还是记录一下吧!

正确流程

本硬件、软件配置如下:
Server:阿里云
OS:Ubuntu

拉取image

sudo docker pull mysql:8.0.23

确认拉取成功

sudo docker images | grep mysql

在这里插入图片描述

创建用于挂载的目录

mkdir -p ~/DishMysqlDir # 用于挂载mysql数据文件
# 这个项目只是我自己使用,因此就放在这里。

生成并运行容器

sudo docker run --name DishMysql -p 13306:3306 -v ~/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxxxx -d mysql:8.0.23 --character-set-server=utf8 --collation-server=utf8_general_ci

其中:

  1. –name ——你的容器的名字
  2. -p 13306:3306 ——进行端口映射,前者为实体机的端口,后者为容器里的端口
  3. -v dir1:/var/lib/mysql ——挂载宿主目录到容器目录,前者为实体机的目录,后者为容器里mysql的目录
  4. -e ——设置环境变量,此时指定root密码
  5. -d ——守护进程模式运行,可以理解为使用哪一个image
  6. -character-set-server --collation-server ——字符集设置

新增内容

在你自定义的网段选取任意IP地址作为你要启动容器IP

--net docker-br0 --ip 172.172.0.10

带Gateway的容器

sudo docker run --name yournewname --network yournetname --ip 172.121.0.101 -p 13306:3306 -v /home/yourpath/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxx -d mysql:8.0.23 --character-set-server=utf8 --collation-server=utf8_general_ci

容器启动情况

这一步还是做一下比较好,我试过run后,容器的状态为EXIT。
在这里插入图片描述

查看要连接mysql的IP地址

这里使用127.0.0.1或localhost等,就是一个大坑,一直都连不上,跟window平台的不一样!!!!!

# 只获取IP
sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' DishMysql
# 全部获取
sudo docker inspect DishMysql

连接mysql

mysql -hxxx.xxx.xxx.xxx -p3306 -uroot -p

或进入docker连接

sudo docker exec -it mysql5.7 mysql -uroot -p

或使用临时镜像链接MySql

sudo docker run -it --rm mysql:8.0.23 mysql -hxxx.xxx.xxx.xxx -uroot -p

不小心关了容器后——打开容器

sudo docker start DishMysql

不想使用时——停止容器

sudo docker stop DishMysql

不想使用时——删除容器

sudo docker rm DishMysql

不想使用时——删除image

sudo docker rmi mysql:8.0.23

2021年3月15日加入

假如你在宿主机安装mysql,项目在容器里。
记住:在宿主机是查看ip地址17.xxx.xxx.xxx那个。

ifconfig

然后项目连接宿主机的ip地址。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值