zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    今天开始学习WCF了开发环境的配置
    我的文章《DLL封装登录框架实现代码复用》终于要发表了
    python小练习给右键菜单添加用chrome打开
    手动创建oracle数据库
    Sublime Text 2中如何输入中文
    转 用Python画Mandelbrot集
    Win7 64位安装Python PIL库
    推荐一本有关设计的好书《写给大家看的设计书》
    坚持做自己
    更新专业版显卡驱动导致ubuntu无法进入桌面环境
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/9938670.html
Copyright © 2011-2022 走看看