Docker配置mysql以及宿主机容器目录挂载

举报
兰舟千帆 发表于 2022/07/16 23:51:31 2022/07/16
【摘要】 Docker配置mysql以及宿主机容器目录挂载 在之前的docker 挂载中主要说明了创建数据卷并挂载的方式。现在我们做一种创建普通目录并进行挂载的方式。 基于mysql镜像的拉取并进行配置...

Docker配置mysql以及宿主机容器目录挂载

在之前的docker 挂载中主要说明了创建数据卷并挂载的方式。现在我们做一种创建普通目录并进行挂载的方式。
基于mysql镜像的拉取并进行配置。

首先拉取mysql镜像

docker pull mysql:8.0.29


  
 
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述

这样直接拉取完毕后,你再去查看下目前投的镜像

 docker images


  
 
  • 1
  • 2

你看这个版本的镜像就有了
在这里插入图片描述
因为mysql需要相关的配置文件。我们做一个配置文件的挂载其实你可以理解为映射或者引用。

自己创建一个文件夹,然后里面创建用来存放mysql相关配置的分级文件夹。

我这里用到了FinalShell工具,当然你可以命令去创建。一定要安排好你目录的位置。我的在根目录下直接创建了这样的分级文件夹。创建的命令就不说了。
在这里插入图片描述

那么我们写一段命令,比较长,但是并不复杂。其实这些文件春

docker run \
 --name mysql -p 3306:3306 -v /mysql/mysql/data:/var/lib/mysql \
-v /mysql/mysql/config:/etc/mysql/conf.d \
 -v /mysql/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.29



  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

太长的命令我们需要用 \ 划分开,这样就可以防止系统因为换行而直接执行没有输入完毕的命令。

对参数做一个解释说明
–name : 对运行容器起一个名字,当然你这里不叫mysql 也是可以的,就是一个名字而已
-p 指定端口,注意这里两个端口的指定。一般叫做把宿主机的端口映射到容器。mysql,默认的监听端口是3306,如果你不修改这里默认的话,那么这里的第二个端口一定是3306,如果你这里随便写一个,是无法正确映射到的。前面的端口主要是干什么用的?将来我们在我们主机连接远程服务器,我们的远程服务器的注解地址加上这个端口就是我们这个mysql容器的访问链接。
-v 这里后面我们就是做了一个宿主目录和容器目录的挂载映射。包括了配置,日志记录,数据存储等等。
-e 这里后面首先做了一个mysql密码的设定
-d 后面 代表的是后台运行
后面的mysql:8.0.29就是说明了运行的容器和版本。

已经很尽力说的详细了。

需要注意的是如果你的原来的系统本来就有一个mysql的版本并且占用了你的3306端口,那么我的建议是杀死是比较明智简单的操作。

出现像这样的报错
在这里插入图片描述

 Error response from daemon: driver failed programming external connectivity on endpoint mysql (fb957f020c1833f804f2612b60c4ef60162dbbb5c888c29488bd1b02bbaab8f9): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use.


  
 
  • 1
  • 2

首先找到谁占用了这个3306

 netstat -nap | grep 3306


  
 
  • 1
  • 2

在这里插入图片描述

你这里可以看到它的进程号
2153这个进程号,然后把它杀掉。

kill 2153

  
 
  • 1

在这里插入图片描述

然后你去启动就可以了。

阿里云这个服务器啊!你不光需要在系统内部开启防火墙,还需要去面板开启防火墙。

 firewall-cmd --zone=public --add-port=3306/tcp --permanent 


  
 
  • 1
  • 2

在这里插入图片描述
然后加载一下配置

firewall-cmd --reload  

  
 
  • 1

在这里插入图片描述
可以查看端口是否开放成功

 firewall-cmd --zone=public --list-ports


  
 
  • 1
  • 2

在这里插入图片描述

还需要去面板操作

在这里插入图片描述

然后我们去本机的navicat远程连接这个数据库

在这里插入图片描述
这样我们就成功连接到远程数据库。
在这里插入图片描述

在这里插入图片描述
给你一些尝试测试的sql语句

create database jgdabc;
create table if not exists stu2
(
	sid int(11),
	name varchar(10),
	gender varchar(10),
	brith date
	
);


-- alter table stu2 add address varchar(10); 
alter table stu2 add (address varchar(10),score int(10));
insert into stu2 values(1,"李自成","男","1000-12-12","北京",44),(2,"华佗","男","1201-12-13","三国",100);
select distinct * from stu2; #无重复记录查找
select * from stu1 as p1; -- as 可以省略
select *from stu2 as p2; -- 起别名
select name , score+10 score  from stu2;
select  distinct * from stu2 where name = "李自成";  -- 条件查询
select * from stu2 where not (name ="李自成");



  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

然后测试后我们去看我们之前挂载的目录文件有没有新的数据出现,你看这里记录了一些非常详细的信息。ok,就到这里。

在这里插入图片描述

文章来源: daodaozi.blog.csdn.net,作者:兰舟千帆,版权归原作者所有,如需转载,请联系作者。

原文链接:daodaozi.blog.csdn.net/article/details/125801354

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。