Docker Swarm volume 数据持久化
Docker Swarm volume 数据持久化
volume 是将宿主级的目录映射到容器中,以实现数据持久化。
可以用两种方式来实现:
- volume 默认模式:工作节点宿主机数据同步到容器内。
- volume NFS 共享存储模式:管理节点宿主同步到工作节点宿主,工作节点宿主同步到容器。
环境:
- 系统:Centos 7.4 x64
- 应用版本:Docker 18.09.0
- 管理节点:192.168.1.79
- 工作节点:192.168.1.78
- 工作节点:192.168.1.77
volume 默认模式
1、管理节点:创建服务并添加数据卷
docker service create \
--mount type=volume,src=test,dst=/data \
--name v-hello \
busybox ping www.baidu.com
# 创建服务
docker service create \
# 创建数据卷 type=volume,src=volume名称,dst=容器目录
--mount type=volume,src=test,dst=/data \
# 服务名
--name v-hello \
# 镜像
busybox
# 容器内执行指令
ping www.baidu.com
命令解析
2、工作节点1或2:查看数据卷
命令:docker volume ls
DRIVER VOLUME NAME
local test
查看数据卷
命令:docker volume inspect test
[
{
"Driver": "local",
"Labels": null,
# 挂载宿主级目录
"Mountpoint": "/var/lib/docker/volumes/test/_data",
"Name": "test",
"Options": {},
"Scope": "local"
}
]
查看数据卷详细信息
3、工作节点1或2:进入容器查看已创建数据卷
命令:docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
019d6e42a364 busybox:latest "ping www.baidu.com" 33 seconds ago Up 31 seconds v-hello.1.m22z2lmpk4c27a9nsji6q0mog
查看启动容器
# 1、进入容器
docker exec -it 019d6e42a364 sh
# 2、容器内进入数据卷节点
/ # cd /data
/data #
# 3、容器外进入数据卷目录创建文件
cd /var/lib/docker/volumes/test/_data
touch a.txt
# 4、容器内测试data目录数据 完成测试!
/data # ls
a.txt
volume NFS共享存储模式(推荐)
一、搭建NFS服务与客户端
1、管理节点:安装nfs服务端、配置nfs主配置文件、添加权限、启动
yum install nfs-utils -y
vim /etc/exports
# 添加目录给相应网段访问并添加读写权限
/opt/docker/wwwroot 192.168.1.0/24(rw)
# 创建共享目录,添加权限
mkdir -p /opt/docker/wwwroot
chmod 777 /opt/docker/wwwroot/
# 开启rpc服务
systemctl start rpcbind
# 启动服务并设置开机自启
systemctl start nfs
2、工作节点:安装nfs客户端、启动服务
yum install nfs-utils -y
# 开启rpc服务
systemctl start rpcbind
# 启动服务并设置开机自启
systemctl start nfs
二、NFS创建共享数据卷
1、管理节点:使用NFS共享存储创建服务及数据卷
docker service create --mount 'type=volume,src=nfs-test,dst=/usr/share/nginx/html,volume-driver=local,volume-opt=type=nfs,volume-opt=device=192.168.1.79:/opt/docker/wwwroot,"volume-opt=o=addr=192.168.1.79,vers=4,soft,timeo=180,bg,tcp,rw"' -p 8888:80 --name nginx nginx:1.12
# 存储类型
type=volume,
# volume名称,
src=<VOLUME-NAME>,
# 目标路径
dst=<CONTAINER-PATH>,
# 官方配置
volume-driver=local,
# 服务类型
volumeopt=type=nfs,
# 官方配置参数
volume-opt=device=<nfs-server>:<nfs-path>,
"volume-opt=o=addr=<nfsaddress>,vers=4,soft,timeo=180,bg,tcp,rw"‘ \
命令解析
2、工作节点1或2:查看创建volumes
docker volume inspect nfs-test
[
{
"CreatedAt": "2018-11-08T15:16:35+08:00",
"Driver": "local",
"Labels": {},
# 工作节点宿主级:数据存放位置
"Mountpoint": "/var/lib/docker/volumes/nfs-test/_data",
"Name": "nfs-test",
"Options": {
# 管理几点共享存储位置,与工作节点共享
"device": "192.168.1.79:/opt/docker/wwwroot",
"o": "addr=192.168.1.79,vers=4,soft,timeo=180,bg,tcp,rw",
"type": "nfs"
},
"Scope": "local"
}
]
3、工作节点1或2:测试数据卷同步
# 管理节点:/opt/docker/wwwroot 目录下创建test文件
touch test # 工作节点:查看宿主节点宿主是否同步
ls /var/lib/docker/volumes/nfs-test/_data
test # 工作节点:进入容器节点查看容器是否同步
docker exec -it 7429f79519eb sh
ls /usr/share/nginx/html
test
Docker Swarm volume 数据持久化的更多相关文章
- Docker Swarm bind 数据持久化
Docker Swarm bind 数据持久化 bind:主要将工作节点宿主级文件或目录,同步挂载到容器中. 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节 ...
- docker 系列 - 容器数据持久化和数据共享
docker 主要有两种数据存储形式, 一种是storage driver(也叫做 Graph driver), 另一种是 volume driver. stroage driver主要是存储那些无状 ...
- docker之容器数据持久化
1.挂载本地目录为容器的数据存放目录 [root@node03 ~]# docker run -itd --name web01 -v /container_data/web:/data ubuntu ...
- Docker Swarm(四)Volume 数据(挂载)持久化
前言 为了获得最佳的性能和可移植性,应该避免将重要数据直接写入容器的可写层,而应使用数据卷或绑定挂载. 可以为集群中的服务创建两种类型的挂载,数据卷挂载(volume mounts)或绑定挂载(bin ...
- Docker集群管理Swarm数据持久化
一.前言 和docker容器一样,Swarm集群中运行的服务也能够做数据持久化.我们可以通过volume.bind和nfs等方式来实现swarm集群应用数据的持久化.其实和docker数据持久化的形式 ...
- docker数据持久化/共享---volume,bind-mount,tmpfs-mount
一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供 ...
- Docker --volume(数据持久化)
数据卷 volume 数据卷 是一个可供一个或多个容器使用的特殊目录,实现让容器中的一个目录和宿主机中的一个文件或者目录进行绑定.数据卷 是被设计用来持久化数据的 第一种:bind mount vol ...
- Docker深入浅出系列 | 容器数据持久化
Docker深入浅出系列 | 容器数据持久化 Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会 ...
- Docker数据持久化与容器迁移
上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据.如果想做到数据持久化,Docker提供数据卷(Data volume)或 ...
随机推荐
- 开学收好这 17 种工具 App,让你新学期学习更有效率
开学啦!不管是想勾搭学长还是想讨好学妹,相信同学们对新学期.新同学或者新学校都已经满怀期待了.但是,除了帅气逼人的学长和青春靓丽的学妹,你们可不能忘记上学的首要任务还是学习噢. 那么,为了帮助同学们更 ...
- python数据分析及展示(二)
一.Matplotlib库入门 1. Matplotlib库的介绍 http://matplotlib.org/gallery.html可查看Matplotlib库的效果 Matplotlib库由各种 ...
- 19款Windows实用软件推荐,满满的干货,总有一款是你必备的
https://post.smzdm.com/p/745799/ 追加修改(2018-08-20 12:28:23):一些追加内容: 很多人都在吐槽为什么推荐Clover,这里我说明一下,就我了解到的 ...
- STC15单片机最小系统DIY
DIY计划简介 STC15F2K60S2简介: STC-Y5高速内核,工作频率可配置为1T(sysclk=mclk) 2K RAM(256字节 idata + 1792字节 xdata) + 60K ...
- nw.js---创建一个点击菜单
使用nw.js创建一个可点击的菜单: <!doctype html> <html lang="en"> <head> <meta char ...
- mysql批量update的两种方法
today a question let me happy(抓狂) 头儿分了一个小任务,让修改循环调用dao层的那些不啦不啦不啦,鉴于之前写过批量更新的玩意,so 很快代码就修改完了,but 测的时候 ...
- 剑指offer——python【第40题】数组中只出现一次的数字
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. 思路 和那道字符串里面第一次出现唯一字符的题目类似,使用count计数方法:另外百度了一下发现 ...
- Python学习之旅(二十二)
Python基础知识(21):IO编程 一.文件读写 读写文件就是请求操作系统打开一个文件对象(文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象 ...
- Coroutines declared with async/await syntax is the preferred way of writing asyncio applications. For example, the following snippet of code (requires Python 3.7+) prints “hello”, waits 1 second, and
小结: 1.异步io 协程 Coroutines and Tasks — Python 3.7.3 documentation https://docs.python.org/3/library/a ...
- mysql数据库的主从同步,实现读写分离 g
https://blog.csdn.net/qq_15092079/article/details/81672920 前言 1 分别在两台centos 7系统上安装mysql 5.7 2 master ...