zoukankan      html  css  js  c++  java
  • docker持久化

    补充一点点删除容器知识,规范:
    先将容器stop停止:
    docker stop 容器id(dsdsa12131)
    然后再执行删除容器的命令:
    docker rm 容器id

    Docker 支持的三种数据挂载方式

    volume:docker管理宿主机文件系统的一部分(只能存放在docker区域中,有限制)
    bind mounts:可以存储在宿主机系统的任意位置
    tmpfs mounts:挂载存储在宿主机系统的内存中,不会写入宿主机的文件系统(linux内存中)

    volume(普通数据卷)

    1.创建volume数据卷:
    docker volume create for_nginx
    for_nginx:数据卷的名称
    2.查看volume数据卷
    docker volume ls
    3.启动容器并指定数据卷:
    docker run -d -p 80:80 --mount type=volume,source=for_nginx,target=/usr/share/nginx/html nginx
    --mount type:挂载类型
    source:挂载的卷的名称
    target:挂载的目标位置
    nginx:镜像的名称
    上面没有解释的指令在前面的docker相关文章中介绍过了,这里就不一一介绍了
    4.查看容器的具体信息
    docker inspect 容器id
    找到mount查看我们刚刚做的配置
    5.输入命令:echo "hello world " > hello.html
    echo "":代表保存双引号中的内容

    hello.html:代表创建hello.html文件
    6.在浏览器中输入
    http://****:port/hello.html
    ***:代表你当前的linux的ip地址
    port:代表你的nginx对外暴露的端口号

    bind mounts(绑定数据卷)

    1.讲宿主机/opt目录挂载到容器内:
    docker run -d -p 80:80 --mount type=bind,source=/test,target=/usr/share/nginx/html nginx
    这些命令之前都说过了,请看之前的文章内容
    2.进入容器查看nginx默认html页面
    docker exec -it dfewewadsad121 /bin/bash
    发现并没有nginx默认的index.html和50.html,但浏览器可以正常显示Welcome to nginx!
    注意:如果你使用bind mounts挂载宿主机目录到一个容器中的非空目录,那么此容器中的非空目录中的文件会被隐藏,容器访问这个目录中时能够访问到的文件均来自于宿主机目录

    tmpfs mounts(临时数据卷)

    1.创建临时数据卷命令
    docker run -d -p 80:80 --mount type=tmpfs,target=/usr/nginx/html nginx

    总结:三种存储方式使用场景

    volume:多个运行容器间共享数据
    当docker 主机不确保具有给定的目录或文件
    备份,恢复,或将数据从一个docker主机迁移到另一个docker主机时

    bind mount:
    主机与容器共享配置文件(docker默认情况下通过这种方式为容器提供dns解析,通过将/etc/resolv.conf挂载到容器中)
    共享源代码或build artifacts(比如将maven的target/目录挂载到容器中,每次在docker主机中build maven工程时,容器能够访问到那些rebuilt artifacts)
    当docker主机中的文件或目录结构和容器需要的一致时

    tmpfs mount:
    既不是将数据存于主机,又不想存于容器中时(这可以是出于安全的考虑,或当应用需要写大量非持久性的状态数据时为了保护容器的性能)

    越是无知的人越是觉得自己无所不知(之前的自己) 越是学习的人越是觉得自己会的太少了(现在的自己) 共勉
  • 相关阅读:
    【美菜网】PostgreSQL与MySQL比较
    MySQL数据库MyISAM和InnoDB存储引擎的比较
    【美菜网】in和exist区别
    【美菜网】on、where以及having的区别
    hive 行列转换
    postgresql 发生锁表时的解锁操作
    postgre 中获取某个字段最小的另一个字段的记录
    关于带分区hive表添加字段如何避免插入的新字段数据为null
    git使用入门
    怎么绕过前端的判断提交
  • 原文地址:https://www.cnblogs.com/humblexwang/p/15764167.html
Copyright © 2011-2022 走看看