docker 持久化存储

[[email protected] ~]# docker run --name mysql -p 3306:3306 -v /mysql(主机上的目录):/var/lib/mysql(容器内部目录) -d hub.c.163.com/public/centos:6.7-tools
[[email protected] ~]# docker exec -it mysql /bin/bash
[[email protected] /]# yum -y install mysql mysql-server
[[email protected] /]# service mysqld start
[[email protected] /]# exit
exit
[[email protected] ~]# cd /mysql/
[[email protected] mysql]# ls
ibdata1  ib_logfile0  ib_logfile1  mysql  mysql.sock  test
[[email protected] mysql]# docker exec -it mysql /bin/bash
[[email protected] /]# mysqladmin -uroot password 123
[[email protected] /]#  mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, 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> create database aa;
Query OK, 1 row affected (0.00 sec)

mysql> use aa;
Database changed
mysql> create table a1 (id int,name char(30));
Query OK, 0 rows affected (0.01 sec)

mysql> select * from a1;
Empty set (0.00 sec)

mysql> insert into a1 values (1,"lishi");
Query OK, 1 row affected (0.00 sec)

mysql> select * from a1;
+------+-------+
| id   | name  |
+------+-------+
|    1 | lishi |
+------+-------+
1 row in set (0.00 sec)
mysql> select * from aa.a1;
+------+-------+
| id   | name  |
+------+-------+
|    1 | lishi |
+------+-------+
1 row in set (0.00 sec)
[[email protected] mysql]# cd /mysql/
[[email protected] mysql]# ls
aa  ibdata1  ib_logfile0  ib_logfile1  mysql  mysql.sock  test
[[email protected] mysql]# cd aa
[[email protected] aa]# ls
a1.frm  a1.MYD  a1.MYI  db.opt
a1.frm    存放表结构,a1.MYD    存储数据,   a1.MYI    索引,  db.opt    数据库相关信息,在这个库下的一些特殊信息存在这里。

对于多个容器我可以把他们的挂载到同一个目录下实现他们的数据一至。这个是一个web集群的话,只要本地的磁盘足够大,那就可以做到一个目录共享,在小集群下我们可以这么做,如果在大集群下比如web集群有上百台的话,不建议这么做,本地磁盘io会成为一瓶颈,他也可以实现本的磁盘远程挂载的方式,先本地目录挂载成远程文件系统,容器挂载到这个远程文件系统实现的就是操作远程目录的权限。并且操作的还是同一个远程文件系统,这样就可以实现数据的一至性。

原文地址:https://www.cnblogs.com/liujunjun/p/12119145.html

时间: 2024-08-30 16:54:03

docker 持久化存储的相关文章

Docker持久化存储与数据共享

一.Docker持久化数据的方案 基于本地文件系统的Volume:可以在执行docker create或docker run时,通过-v参数将主机的目录作为容器的数据卷.这部分功能便是基于本地文件系统的volume管理. 基于plugin的Volume:支持第三方的存储方案,比如NAS,aws 1.Volume的类型 受管理的data Volume,由docker后台自动创建 绑定挂载的Volume,具体挂载位置可以由用户指定 二.数据持久化:Data Volume 1.操作流程 注意:mysq

Docker持久化存储之数据共享

持久化存储 Data volume 要知道容器是有生命周期的.docker默认的存储方式:存储类型:(strage driver:overlay2.xfs) data volume有两种挂载方式: 1)bind mount(用户管理):将宿主机上的某个目录或文件(不可以是没有格式化的磁盘文件),挂载到容器中,默认在容器内对此目录是有读写权限的,如果只需要向容器内添加文件,不希望覆盖目录,需要注意源文件必须存在,否则会被当做一个目录bind mount给容器.2)docker manager vo

Docker 持久化存储, Data Volume

docker容器, 再启动之后 我们可以对其进行 修改删除等等.如果是一个数据库的容器, 里面的数据 不想随着这个容器的消失, 而消失.  就需要持久化数据存储. Data Volume   这是 docker hub 上面  mysql 的Dockerfile 这里的 VOLUME 意思就是, 将产生的数据 写入到当前主机的 /var/lib/mysql 里面. [[email protected] ~]$ docker images REPOSITORY TAG IMAGE ID CREAT

docker的持久化存储和共享存储和网络架构

1.持久化存储docker容器中一般不保存数据,只封装系统和环境,这样就存在一个问题,一个docker容器的数据内容不能持久化,且不能共享出来,在生产中,不能很好地提供服务.为了解决这个问题,就要涉及到docker的持久化存储和共享存储的技术了.所谓持久化,就是将真实机目录挂载到容器中,让容器运行时所产生的数据都写入到真实机的目录中,以此来提供持久存储. mkdir /var/webroot docker run -d -p 80:80 -v /var/webroot:/var/www/html

44_自定义镜像及仓库、持久化存储 、 Docker网络架构

1. 制作自定义镜像(base基础镜像,搭建共性环境)基于centos镜像使用commit创建新的镜像文件基于centos镜像使用Dockerfile文件创建一个新的镜像文件 1.1 使用镜像启动容器 1)在该容器基础上修改yum源docker_images]# docker run -it centos345 /]# rm -rf /etc/yum.repos.d/*  345 /]# vi /etc/yum.repos.d/dvd.repo[dvd]name=dvdbaseurl=ftp:/

使用Ceph集群作为Kubernetes的动态分配持久化存储

使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储. Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ceph-common

Apache Stratos Mock架构及持久化存储卷的映射

Apache Stratos Mock IaaS 简介 Apache Stratos 支持许多基础设施作为服务 (IaaS) 的平台:EC2,OpenStack,vCloud,CloudStack,Docker等.然而,设立IaaS 或购买公共 IaaS 服务对于尝试Stratos来说是额外的开销.此外,设置本地 IaaS 需要大量的硬件资源和购买公有云上的IaaS账户所涉及的成本.这些对尝试Stratos带来了障碍 Stratos. 通过引入Docker/Kubernetes来支持Linux容

Longhorn:实现Kubernetes集群的持久化存储

Longhorn项目是Rancher Labs推出的开源的基于云和容器部署的分布式块存储新方式.Longhorn遵循微服务的原则,利用容器将小型独立组件构建为分布式块存储,并使用容器编排来协调这些组件,形成弹性分布式系统. 自2017年4月Longhorn项目发布以来,人们对在Kubernetes集群上运行Longhorn存储就产生了极大的兴趣.近日,Longhorn v0.2版本发布了,它可支持任何Kubernetes集群的持久化存储实现! Why Longhorn 如今,基于云和容器的部署规

k8s之volumes持久化存储

k8s之数据持久化 kubernetes存储卷:我们知道默认情况下容器的数据都是非持久化的,在容器销毁以后数据也跟着丢失,所以docker提供了volume机制以便将数据持久化存储.类似的,k8s提供了更强大的volume机制和丰富的插件,解决了容器数据持久化和容器间共享数据的问题. volume:我们经常会说:容器和 Pod 是短暂的.其含义是它们的生命周期可能很短,会被频繁地销毁和创建.容器销毁时,保存在容器内部文件系统中的数据都会被清除.为了持久化保存容器的数据,可以使用k8s volum