Docker配置mysql以及宿主机容器目录挂载
Docker配置mysql以及宿主机容器目录挂载
在之前的docker 挂载中主要说明了创建数据卷并挂载的方式。现在我们做一种创建普通目录并进行挂载的方式。
基于mysql镜像的拉取并进行配置。
首先拉取mysql镜像
docker pull mysql:8.0.29
这样直接拉取完毕后,你再去查看下目前投的镜像
docker images
你看这个版本的镜像就有了
因为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
太长的命令我们需要用 \ 划分开,这样就可以防止系统因为换行而直接执行没有输入完毕的命令。
对参数做一个解释说明
–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.
首先找到谁占用了这个3306
netstat -nap | grep 3306
你这里可以看到它的进程号
2153这个进程号,然后把它杀掉。
kill 2153
然后你去启动就可以了。
阿里云这个服务器啊!你不光需要在系统内部开启防火墙,还需要去面板开启防火墙。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
然后加载一下配置
firewall-cmd --reload
可以查看端口是否开放成功
firewall-cmd --zone=public --list-ports
还需要去面板操作
然后我们去本机的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 ="李自成");
然后测试后我们去看我们之前挂载的目录文件有没有新的数据出现,你看这里记录了一些非常详细的信息。ok,就到这里。
Docker配置mysql以及宿主机容器目录挂载相关推荐
- 在虚拟机docker启动mysql但是宿主机无法访问的问题
在DockerHub官网查看mysql启动的命令,发现都没有指定端口映射,于是我模仿着执行的命令如下: docker run --name testmysql -e MYSQL_ROOT_PASSWO ...
- Docker - 部署 MySQL 5.7 数据库容器
文章目录 Docker - 部署 MySQL 5.7 数据库容器 环境信息 部署 MySQL 5.7 数据库容器 修改 MySQL 的字符集 参考信息 Docker - 部署 MySQL 5.7 数据 ...
- 使用Docker配置MySQL
ba使用Docker配置MySQL 内容 安装Docker(略过),直接使用服务器或者你虚拟机对应的安装命令进行安装即可,安装之后打开docker服务,centos 7 下使用systemctl st ...
- docker下载mysql镜像并启动容器
docker下载mysql镜像并启动容器 下载mysql镜像 运行一个mysql容器 命令 参数含义 查看当前运行的容器状态 进入容器 使用root登录mysql 重启mysql容器 下载mysql镜 ...
- docker部署的mysql调整宿主机映射端口
1.记录mysql容器id 记录docker中mysql的容器id 记录mysql的容器id docker ps关闭docker服务 systemctl stop docker 2.修改配置文件 进入 ...
- win10 mysql 主从复制_win10 使用Docker配置mysql主从复制
拉取镜像,我这里拉取5.6镜像 docker pull mysql:5.6.43 2.找一个目录编写主从库配置文件,这里我直接在上博客找的: (1)主库master.cnf文件: [mysqld] p ...
- docker配置mysql 中间件 ProxySQL
之前我们配置了mysql 一主二从模式,本文将利用mysql中间件ProxySQL 实现读写分离. 首先下载镜像 docker pull proxysql/proxysql 在home目录下创建pro ...
- Docker学习:跨宿主机通信 | overlay和macvlay(理论+实战篇)
前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,带你一起 深入了解在编排工具出现前,跨宿主机通信的两大得力干将overlay.macvlay,这也会后期学好K8s做好基本功铺垫,打下一 ...
- Docker配置mysql互为主从
配置准备 两台机器 两台机器:A(193.168.10.101) B(193.168.10.102) 做好ssh免密登录 mysql大版本需要一致,小版本可忽略 并且两台机器已经安装好了docker ...
最新文章
- LFSR 和 m序列
- Linux (x86) Exploit 开发系列教程之十一 Off-By-One 漏洞(基于堆)
- linux怎么配置ftp服务,Ubuntu下安装、配置FTP服务
- 虚拟服务器(dmz),连接虚拟主机到DMZ网络的最佳方法
- python 调用另一个py_跟我自学python 第9章 类(9.4.6 在一个模块中导入另一个模块)...
- sql 2005分区表
- 大数据学习——akka自定义RPC
- 2018蓝桥杯省赛---java---A---1(分数)
- 第十一章:可绑定的基础结构(四)
- Java中List, Integer[], int[]的相互转换
- jquery各类资源整理
- 限制firefox上传框宽度
- 五八搜索实时索引实现和重构
- u-boot之mkconfig分析
- 深度学习(十八)基于R-CNN的物体检测-CVPR 2014
- 《沉默的大多数》跳出手掌心
- cocos2d-x学习笔记(持续更新)
- 数据挖掘综合应用:贷款产品预测案例
- eureka心跳_8个Eureka优化技巧,让效率提高10倍
- 小米2020校招笔试题及答案