zoukankan      html  css  js  c++  java
  • docker-volume



    容器卷按照业务类型可以分为两大类:

                      无状态(数据不需要持久化)

                      有状态(数据持久化)



    Docker 卷操作

    创建卷(以local模式卷为例)

    方式一直接创建卷:

           [root@localhost ~]# docker volume create myvolume
            myvolume

    方式二创建容器时候创建卷:

          [root@localhost ~]# docker run -d --name=nginx-volume -v /usr/share/nginx/html nginx


    查看卷

    [root@localhost ~]# docker volume ls
    DRIVER              VOLUME NAME
    local               cd7dacfec3b701f4601de4eb29c7992197252d29d7ce14e50cc5401a81d3215a  创建容器的时候直接创建的卷
    local               myvolume


    查看卷详细信息

    [root@localhost ~]# docker volume inspect myvolume
    [
         {
             "CreatedAt": "2020-10-12T10:26:46+08:00",
             "Driver": "local",
             "Labels": {},
             "Mountpoint": "/var/lib/docker/volumes/myvolume/_data",
             "Name": "myvolume",
             "Options": {},
             "Scope": "local"
         }
    ]



    挂载数据卷

    [root@localhost ~]# docker run -d --name=nginx --mount source=myvolume,target=/usr/share/nginx/html nginx

    登录容器器并写入数据

    [root@localhost ~]# docker exec -it  nginx bash
    root@fb2aff3e3d8a:/# echo "11111111" > /usr/share/nginx/html/index.html


    删除容器

    [root@localhost ~]# docker rm -f nginx
    nginx


    重新创建nginx容器挂载之前的卷

    [root@localhost ~]# docker run -d --name=nginx --mount source=myvolume,target=/usr/share/nginx/html nginx
    cecca423928317bd2614f4d9c6ff12dd8de603b29dae30fad20e4bac53abe913
    [root@localhost ~]# docker exec -it  nginx bash

    查看数据依然存在

    root@cecca4239283:/# cat /usr/share/nginx/html/index.html
    11111111


    删除数据卷(必须删除掉使用的容器)

    [root@localhost ~]# docker volume rm myvolume
    myvolume



    容器之间数据共享

    容器1 

    [root@localhost ~]# docker run --mount source=log-vol,target=/tmp/log --name=log-producer -it busybox

    / # cat <<EOF >/tmp/log/mylog.log
    > Hello, My log.
    > EOF
    / # cat /tmp/log/mylog.log
    Hello, My log.


    容器2

    [root@localhost ~]# docker run -it --name consumer --volumes-from log-producer busybox
    / # cat /tmp/log/mylog.log
    Hello, My log.



             Docker 容器的文件系统不是一个真正的文件系统,而是通过联合文件系统实现的一个伪文件系统,而 Docker 卷则是直接利用主机的某个文件或者目录,它可以绕过联合文件系统,直接挂载主机上的文件或目录到容器中。















  • 相关阅读:
    CS224n, lec 10, NMT & Seq2Seq Attn
    CS231n笔记 Lecture 11, Detection and Segmentation
    CS231n笔记 Lecture 10, Recurrent Neural Networks
    CS231n笔记 Lecture 9, CNN Architectures
    CS231n笔记 Lecture 8, Deep Learning Software
    CS231n笔记 Lecture 7, Training Neural Networks, Part 2
    pytorch坑点排雷
    Sorry, Ubuntu 17.10 has experienced an internal error
    VSCode配置python插件
    tmux配置与使用
  • 原文地址:https://www.cnblogs.com/menkeyi/p/13806876.html
Copyright © 2011-2022 走看看