Docker Swarm bind 数据持久化

Docker Swarm bind 数据持久化

  • bind:主要将工作节点宿主级文件或目录,同步挂载到容器中。

环境:

  • 系统:Centos 7.4 x64
  • 应用版本:Docker 18.09.0
  • 管理节点:192.168.1.79
  • 工作节点:192.168.1.78
  • 工作节点:192.168.1.77


一、两种宿主级挂载方式

管理节点:读写挂载

docker service create --mount type=bind,src=<HOST-PATH>,dst=<CONTAINER-PATH> --name myservice <IMAGE>

管理节点:只读挂载

docker service create --mount type=bind,src=<HOST-PATH>,dst=<CONTAINER-PATH>,readonly --name myservice <IMAGE>

二、创建bind 数据持久化

1、管理节点:创建服务并添加bind读写挂载

docker service create --mount type=bind,src=/etc,dst=/data --name test01 busybox ping www.baidu.com

# 创建服务
docker service create # 创建数据卷 type=bind,src=宿主目录,dst=容器目录
--mount type=bind,src=/etc,dst=/data # 服务名
--name test01 # 镜像
busybox
# 容器内执行指令
ping www.baidu.com

命令解析

docker service inspect test02
 "Mounts": [
                        {
                            "Type": "bind",
                            "Source": "/etc",
                            "Target": "/data"
                        }
                    ]

查看服务详细信息,截取挂载节点详细信息

2、工作节点:进入容器测试挂载目录

# 进入容器
docker exec -it e4d7e2d88cab sh
# 测试目录与/etc一致
/ # cd /data
/data # ls
....

原文地址:https://www.cnblogs.com/xiangsikai/p/9938742.html

时间: 2024-08-01 01:37:23

Docker Swarm bind 数据持久化的相关文章

docker容器实现数据持久化的两种方式及其区别

前言 这篇博文是我对docker实现数据持久化几种方式的特征进行一个总结. 在docker中,它的存储文件系统是在dockerhost上原有的xfs或ext4架设了一层文件系统:overlay2(将此行重点标注的原因就是我在面试中被问到过:docker使用的是什么文件系统?),通过docker info命令可以查看出主机上docker相关的信息,包括支持的网络类型.系统版本.内核版本.docker主机的cpu.内存等信息.如下: 在docker中实现数据持久化有两种方式:Bind mount和D

Docker实践(三):数据持久化及共享

环境说明: 主机名 操作系统版本 IP地址 docker版本 ubuntu1604 Ubuntu 16.04.5 172.27.9.31 18.09.2 ubuntu安装详见:Ubuntu16.04.5以lvm方式安装全记录docker安装详见:Ubuntu16.04安装Docker?在Linux上运行的Docker有三种不同的方式将数据从 Docker Host挂载到 Docker 容器,并实现数据的读取和存储:volumes.bind mounts.tmpfs.??三者的区别在于数据存储在d

Docker数据持久化简述

Docker中的数据持久化方式有两种:数据卷(Data Volumes)挂载主机目录 (Bind mounts) 数据卷:数据卷可以在容器之间共享和重用对数据卷 的修改会立马生效对数据卷 的更新,不会影响镜像数据卷默认会一直存在,即使容器被删除$ docker volume create my-vol #创建数据卷$ docker volume ls #查看有哪些卷$ docker volume inspect my-vol #查看卷详情$ docker run -d -P --name web

K8s实现数据持久化

前言 在一切虚拟化解决方案中,数据的持久化都是需要我们非常关心的问题,docker如此,K8s也不例外.在k8s中,有一个数据卷的概念. k8s数据卷主要解决了以下两方面问题: 数据持久性:通常情况下,容器运行起来后,写入到其文件系统的文件时暂时性的.当容器崩溃后,kebelet将这个容器kill掉,然后生成一个新的容器,此时,新运行的容器将没有原来容器内的文件,因为容器是重新从镜像创建的. 数据共享:同一个pod中运行的容器之间,经常会存在共享文件/文件夹的需求. 在k8s中,Volume(数

Docker Swarm(四)Volume 数据(挂载)持久化

前言 为了获得最佳的性能和可移植性,应该避免将重要数据直接写入容器的可写层,而应使用数据卷或绑定挂载. 可以为集群中的服务创建两种类型的挂载,数据卷挂载(volume mounts)或绑定挂载(bind mounts). 无论使用哪种类型的挂载,在创建服务时使用 --mount 标志进行配置,或者在更新服务时使用 --mount-add 或 --mount-rm 标志.如果不指定一个类型,默认类型是数据卷挂载. 注:tmpfs mount 仅可用于独立容器,不能在 Docker Swarm Se

【赵强老师】Docker Swarm集群的数据持久化

如果Docker Swarm集群中运行了mysql.nginx等服务,这些服务的数据如果没有挂载到宿主机中,那么容器一旦停止运行,那就意味着数据丢失. 有什么方法可以解决swarm集群中运行的服务能够数据持久化呢?我们可以通过volme.nfs等方法来实现swarm集群应用数据持久化,其实也和docker数据持久化的形式是一样的. 可以用两种方式来实现: volume 默认模式:工作节点宿主机数据同步到容器内. volume NFS 共享存储模式:管理节点宿主同步到工作节点宿主,工作节点宿主同步

Docker实现数据持久化

由于Docker技术的火爆,以至于现在大大小小的公司都在使用Docker.对Docker熟悉的朋友都明白DOcker容器运行是有生命周期的,如果docker容器发生故障,那么就意味着容器中的数据也将丢失.那么对于企业来说的话,数据是重要的!如何做到对docker容器中的数据持久化就是运维人员需要考虑的问题了!本篇博文将了解如何对容器中的数据进行持久化! 在了解Docker数据持久化之前,需要对Docker的存储类型有一个简单的了解,执行以下命令即可看出: [[email protected] ~

数据持久化之bind Mounting

一.默认情况 1.创建一个Nginx测试镜像 Dockerfile: FROM nginx:latest WORKDIR /usr/share/nginx/html COPY index.html index.html #使用当前目录下index.html文件 index.html [[email protected] docker-nginx]# cat index.html <!doctype html> <html lang="en"> <head&

Docker数据持久化(1)

一.前言 当我们使用Docker创建一个mysql的container, 数据是存储在container内的.如果有一天不小心执行了docker rm $(docker ps -aq)删除所有container. 那么mysql里的数据也会被删掉, 这是不安全的.我们需要将数据持久化, 存储在container外部. 即使删除container也不会删除原有的数据. 二.容器的缺陷 容器中的数据可以存储在容器层.但是将数据存放在容器层存在以下问题:1.数据不是持久化.意思是如果容器删除了,这些数