zoukankan      html  css  js  c++  java
  • <Docker学习>5. docker数据管理

    当我们创建了一个tomcat容器,如何简单部署一个web应用?如何将war包放入到容器中?也就是说怎么样把文件从宿主机中 "放入" 到容器中?

    docker cp命令可以将宿主机本地上的文件复制到容器中。

    docker cp [本地文件] [容器id/容器名]:[容器目录]

    docker cp /opt/web.war ebe706b78059:/usr/local/webapp

    cp命令只是一种简单的方法,在容器中数据管理的主要方式有两种:

    1. 数据卷 volume
    2. 挂载主机目录 bind mounts
    volume
    数据卷是一个可以提供一个或者多个容器使用的特殊目录,可以使的容器可以绕过UFS(Unix File System)
     
    特性:
    多个容器之间可以共享
    数据卷默认一直存在,容器删除时不删除(除强制使用命令参数删除)
    数据卷的更新不影响镜像
    数据卷的修改立刻生效
     
     
    命令
    创建:docker volume create [vol-name]
     
    查看容器中的所有数据卷: docker volume ls 
     
    查看指定的数据卷: docker volume inspect [vol-name]
     
    删除数据卷: docker volume rm [vol-name]
     
    清理无主的数据卷: docker volume prune
     
    查看容器的信息 docker inspect [容器id/容器名称] ,在 "Mounts" key中有容器挂载的信息

    容器启动挂载数据卷

    1. 以-v 方式 docker run [选项] -v [数据卷名称]:[容器目录] [镜像名称/镜像id]

    2. 以 --mount方式  docker run [选项] --mount type=bind,source=[数据卷名称],target=[容器目录] [镜像名称/镜像id]

    挂载主机目录

    挂载主机目录的方式有两种,-v 和 --mount 

    1. 以-v 方式 docker run [选项] -v [本地目录]:[容器目录] [镜像名称/镜像id]

    2. 以 --mount方式  docker run [选项] --mount type=bind,source=[本地目录],target=[容器目录]  [镜像名称/镜像id]

    使用 -v 参数时如果本地目录不存在 Docker 会自动为你创建一个文件夹, 现在使用 --mount 参数时如果本地目录不存在, Docker 会报错 。

    Docker 挂载主机目录的默认权限是 读写 , 用户也可以通过增加 readonly 指定为 只读 。

    docker run [选项] --mount type=bind,source=[本地目录],target=[容器目录],readonly  [镜像名称/镜像id]

  • 相关阅读:
    Oracle查询中将结果列按分组用逗号隔开,拼接成一行(listagg函数)
    Oracle SQL获取每个分组中日期最大的一条数据
    oracle字段根据字符串拆分,用subStr()和inStr()进行拆分
    javascript求最大公约数
    javascript单链表
    防input required属性的提示框
    css3绘制三色字
    js和php时间戳的问题
    ajax使用的一些错误
    浏览器js文件未及时更新问题
  • 原文地址:https://www.cnblogs.com/xiaojianfeng/p/9399849.html
Copyright © 2011-2022 走看看