IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker数据卷 -> 正文阅读

[系统运维]Docker数据卷

Docker数据卷

数据卷挂载

命令方式挂载

命令挂载说明 -v [宿主机目录|挂载别名:]容器内目录[:ro|rw]

  1. 匿名挂载

    # 匿名挂载
    docker run -it -v /root/volume1 --name centos1 centos /bin/bash
    
    # -d 后台运行
    # -v 数据卷挂载  容器内目录
    # --name 命名容器
    

    查看元数据信息

    # 查看元数据
    docker inspect centos1
    
    # 挂载信息如下
    "Mounts": [
    	{
            "Type": "volume",
            "Name": "9c795e1c6bc195860d2b93fdc9f1cc504f2ffaf7b8a46d0762d0584b123fe72d",
            "Source": "/var/lib/docker/volumes/9c795e1c6bc195860d2b93fdc9f1cc504f2ffaf7b8a46d0762d0584b123fe72d/_data",
            "Destination": "/root/volume1",
            "Driver": "local",
            "Mode": "",
            "RW": true,
            "Propagation": ""
    	}
    ],
    
    
    # Type  		挂载类型
    # Name  		匿名挂载的随机名称
    # Source 		宿主机挂载目的地址
    # Destination 	容器内挂载的目录
    # RW			是否可读可写
    
  2. 具名挂载

    # 具名挂载
    docker run -it --name centos1 -v volume1:/root/volume1 centos /bin/bash
    # -v 数据卷挂载  映射名称:容器内目录
    
    # 挂载信息如下
    "Mounts": [
        {
            "Type": "volume",
            "Name": "volume1",
            "Source": "/var/lib/docker/volumes/volume1/_data",
            "Destination": "/root/volume1",
            "Driver": "local",
            "Mode": "z",
            "RW": true,
            "Propagation": ""
        }
    ],
    
    # 具名挂载指定权限
    docker run -it --name centos1 -v volume2:/root/volume2:ro centos /bin/bash
    # -v 数据卷挂载  映射名称:容器内目录:权限
    # 		ro 权限:只读权限,容器内挂载目录无法创建文件或目录
    
    # 挂载信息如下
    "Mounts": [
        {
            "Type": "volume",
            "Name": "volume2",
            "Source": "/var/lib/docker/volumes/volume2/_data",
            "Destination": "/root/volume2",
            "Driver": "local",
            "Mode": "ro",
            "RW": false,
            "Propagation": ""
        }
    ],
    
    
  3. 绑定挂载

    通具名挂载类似,仅是名称更改为宿主机目录

    # 具名挂载
    docker run -it --name centos1 -v /data/volume1:/root/volume1 centos /bin/bash
    # -v 数据卷挂载  宿主机目录:容器内目录
    
    # 挂载信息如下
    "Mounts": [
        {
            "Type": "bind",
            "Source": "/data/volume1",
            "Destination": "/root/volume1",
            "Mode": "",
            "RW": true,
            "Propagation": "rprivate"
        }
    ],
    
    # 具名挂载指定权限
    docker run -it --name centos1 -v /data/volume2:/root/volume2:ro centos /bin/bash
    # -v 数据卷挂载  宿主机目录:容器内目录:权限
    # 		ro 权限:只读权限,容器内挂载目录无法创建文件或目录
    
    # 挂载信息如下
    "Mounts": [
        {
            "Type": "bind",
            "Source": "/data/volume2",
            "Destination": "/root/volume2",
            "Mode": "ro",
            "RW": false,
            "Propagation": "rprivate"
        }
    ],
    

? 所有挂载的数据在宿主机和容器内都可以找到,并且容器删除后宿主机内的映射的数据卷信息不会被删除

Dockerfile挂载

  1. 创建Dockerfile文件

  2. 编写Dockerfile文件

    # 基于 centos镜像
    FROM centos
    
    # 挂载数据卷列表(匿名挂载)
    VOLUME ["/root/volume1", "volume2"]
    
    # 输出命令
    CMD echo "-- Dockerfile end --"
    
    # 命令
    CMD /bin/bash
    
    
  3. 使用Dockerfile构建镜像

    # 后面的 . 一定要有
    docker build -f Dockerfile -t mycentos .
    # -f 指定Dockerfile文件
    # -t 指定生成的镜像名称    名称[:版本tag]
    
    # 构建成功示例
    [root@localhost ~]# docker build -f Dockerfile -t mycentos .
    Sending build context to Docker daemon  23.55kB
    Step 1/4 : FROM centos
     ---> 5d0da3dc9764
    Step 2/4 : VOLUME ["/root/volume1", "volume2"]
     ---> Running in 5a2fe4403328
    Removing intermediate container 5a2fe4403328
     ---> 8b9b9c7683d8
    Step 3/4 : CMD echo "-- Dockerfile end --"
     ---> Running in 5ee26484266a
    Removing intermediate container 5ee26484266a
     ---> 811bfb554204
    Step 4/4 : CMD /bin/bash
     ---> Running in 8c143cabb6ab
    Removing intermediate container 8c143cabb6ab
     ---> fe7a7c3725ce
    Successfully built fe7a7c3725ce
    Successfully tagged mycentos:latest
    
    
  4. 启动容器

    # 启动容器
    docker run -it --name mycentos1 mycentos /bin/bash
    
    # 数据卷挂载信息
    "Mounts": [
        {
            "Type": "volume",
            "Name": "4d8b613894f543242d42013074ccca6079e4213caca015ec51adf281c611de07",
            "Source": "/var/lib/docker/volumes/4d8b613894f543242d42013074ccca6079e4213caca015ec51adf281c611de07/_data",
            "Destination": "/root/volume1",
            "Driver": "local",
            "Mode": "",
            "RW": true,
            "Propagation": ""
        },
        {
            "Type": "volume",
            "Name": "66d49c90c42bd312346559f1747d6fea317133155501da9c257cd9cf6b689083",
            "Source": "/var/lib/docker/volumes/66d49c90c42bd312346559f1747d6fea317133155501da9c257cd9cf6b689083/_data",
            "Destination": "volume2",
            "Driver": "local",
            "Mode": "",
            "RW": true,
            "Propagation": ""
        }
    ],
    

数据卷容器共享

通过挂载共享数据卷,实现多个容器数据共享

# 启动第一个容器
docker run -it --name centos1 -v /data/volume1:/root/volume1 centos /bin/bash

# 启动第二个容器
docker run -it --name centos2 --volumes-from centos1 centos /bin/bash

# --volumes-from  从其他容器挂载

运行结果

在这里插入图片描述

在此,实现多个容器数据卷共享。

文章有参考,如有侵权请联系作者

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:36:34  更:2022-02-19 01:36:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:47:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码