使用docker容器运行MySQL数据库并持久化数据文件
1、下载mysql镜像
# docker pull mysql
2、启动mysql容器
# docker run -itd -v /data:/var/lib/mysql -p 33060:3306 --name mysqldb mysql bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
25d047a99917c6420412f36e1d0e2e6af38fc86539b2184d1ea7e5a47b955011
3、这里我们发现启动mysql容器出现warning,排除警告方式如下:
# vi /etc/sysctl.conf
添加:net.ipv4.ip_forward = 1
生效配置:
# sysctl -p
vm.max_map_count = 262144
net.ipv4.ip_forward = 1
重启网路服务:
# service network restart
Restarting network (via systemctl): [ OK ]
再次启动mysql容器,发现警告消失:
# docker run -itd -v /data:/var/lib/mysql -p 33060:3306 --name mysqldb mysql bash
bbde59a2921981218441851d7527d22be3a0e37d3164fd1e07c4653d5dccc94d
注意:从上面启动mysql容器命令中使用了-v、-p参数,具体意义解释如下:
-v:为启动的容器挂在volume,mysql数据库默认数据目录是容器中的/var/lib/mysql目录,该目录是容器自带的一个volume,如果不为mysql容器单独配置数据目录volume,那么我们会发现重启mysql容器后mysql数据库中数据都丢失了。为了持久化mysql数据,我们在启动mysql容器时添加了-v /data:/var/lib/mysql参数,把主机的/data目录挂载到容器的/var/lib/mysql下。
-p:指定mysql容器到本机的端口映射,将容器3306端口映射到主机的33060端口,这样设置后,我们就可以在局域网访问mysql数据库了。
4、进入mysql容器,启动mysql服务:
# docker exec -it mysqldb bash
root@ff3a4e6288c1:/# service mysql status
[info] MySQL Community Server 5.7.21 is not running.
root@ff3a4e6288c1:/# service mysql start
No directory, logging in with HOME=/
..
[info] MySQL Community Server 5.7.21 is started.
5、登录mysql数据库,进行基本配置:
root@ff3a4e6288c1:/# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.21 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, 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 |
| chavin |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all privileges on *.* to root@'%' identified by 'mysql';
Query OK, 0 rows affected, 1 warning (0.00 sec)
此时,可以在局域网内访问docker容器启动的mysql数据库了。
# mysql -uroot -pmysql -h192.168.177.129 -P33060
使用docker容器运行MySQL数据库并持久化数据文件的更多相关文章
- Docker容器部署Mysql数据库服务器
本节会用到的Docker命令如下: docker images 查看mysql镜像id docker run -d -p xxxxxxxxxxxxxxx/zhufc/mysql:v2 通过镜像生成 启 ...
- MySQL数据库---配置文件及数据文件
1.主配置文件 #/usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options' #cat /etc/my.cnf ...
- Mysql 数据库日志与数据文件分开
参考:https://blog.csdn.net/jiao_fuyou/article/details/78366621 myql默认配置情况下,二进制日志文件是保存在默认的数据目录 data 下,如 ...
- MySQL数据库如何查看数据文件的存放位置
SHOW GLOBAL VARIABLES;
- Docker 运行 MYSQL 数据库的总结
公司里面要求做一个小demo 学习java相关的东西 然后使用了mysql数据库 很早之前做过mysql的容器化运行. 现在想想已经忘记的差不多了 所以这里总结一下 docker化运行mysql数据 ...
- 在docker中使用mysql数据库,在局域网访问
1.获取mysql镜像 docker pull mysql:5.6 注意:此处之所以获取mysql5.6是因为mysql5.7在centos7中启动可能会报错 2.查看镜像列表 docker imag ...
- 在Centos上安装docker,部署mysql数据库
何为docker? Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 本机环境 24小时不关机的Centos ...
- docker中使用mysql数据库详解(在局域网访问)
开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在 ...
- 在docker下运行mysql
docker pull mysql 从镜像仓库中拉取mysql镜像. 运行镜像 到此mysql在docker容器下运行成功. 使用Navicat连接工具连接到mysql 经过以上步骤就完成了在dock ...
随机推荐
- 在IIS上安装 thinkphp的方法
1. 在iis安装 urlwrite 2. 安装php处理程序映射 3. 在项目中建立web.config, 键入以下内容: <?xml version="1.0" enco ...
- Linux命令行增强版
0. 前言 周末大早上的,没事做,了解下这几个命令了,哎~~~. 正常情况下,Linux下的命令行,界面比较丑,命令行命令有时候也不是很友好,下面就通过这几个命令或工具,美化一下命令行. 1. oh- ...
- pandas Series的sort_values()方法
pandas Series的 sort_values() 方法能对Series进行排序,返回一个新的Series: s = pd.Series([np.nan, 1, 3, 10, 5]) 升序排列: ...
- 【Java】Java8的Lambda入门记录
简化定义匿名实现类 匿名实现类的传统方式 创建一个线程,需要实现Runnable接口,并实现public void run()方法,用传统的方式是这样的: public static void mai ...
- hdoj:2057
#include <cstdio> #include <cmath> #include <iostream> using namespace std; int ma ...
- Vue:生命周期
一.什么是vue的生命周期 Vue中的生命周期是指组件从创建到销毁的一系列过程.看下面这张官方文档的图: 从图片中可以看出Vue的整个生命周期包括8个状态,按照先后顺序分别为: beforeCreat ...
- diff ->> acl & prefix list
1,ACL可以用于数据层面也可以用于控制层面,prefix-list只能用于控制层面2,ACL抓的是定长掩码的子网,而prefix-list可以抓取一个前缀下的所有掩码长度即子网.比如说ACL中的pe ...
- underrun || overrun
Underrun(underflow) In computing, buffer underrun or buffer underflow is a state occurring when a bu ...
- linux下python3调用c代码或者python3调用c++代码
前几篇的blog都是为了这个实验做基础,先说 原因是python调用数据库150w条数据22s,然后处理数据,其实就2个简单的for循环,65s 需求: 1. python调用c++函数 2. c++ ...
- [转] Android开发之如何保证Service不被杀掉(broadcast+system/app)
转发:原文链接http://blog.csdn.net/mad1989/article/details/22492519 序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台 ...