当我们创建了一个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]

<Docker学习>5. docker数据管理的更多相关文章

  1. Docker学习之Docker容器基本使用

    Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...

  2. Docker学习之Docker镜像基本使用

    Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...

  3. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  4. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  5. Docker学习笔记 - Docker的守护进程

    学习目标:  查看Docker守护进程的运行状态 启动.停止.重启Docker守护进程 Docker守护进程的启动选项 修改和查看Docker守护进程的启动选项 1.# 查看docker运行状态  方 ...

  6. Docker学习笔记 - Docker客户端和服务端

    学习内容: Docker客户端和服务端的通讯方式:client和自定义程序 Docker客户端和服务端的连接方式:socket 演示Docker客户端和服务端之间用remote-api通讯:nc   ...

  7. Docker学习之Docker Registry

    前言 前面已经学习了怎样通过Dockerfile来构建我们自己的镜像了,但是一个系统可能包含着很多个微服务即有很多个镜像,当镜像越来越多的时候,就必须得有一个地方来管理这些镜像,Docker官方提供了 ...

  8. Docker学习:Docker安装和基本使用

    Docker Docek是一种容器技术.容器是一种轻量级.可移植.自打包的软件技术,使应用程序可以在几乎任何地方以相同的方式运行. 使用者可以在笔记本上创建并测试好的容器,无需任何修改就能够在生产系统 ...

  9. Docker学习之docker架构

    docker架构 解释 1.docker命令提交给docker daemon进行处理,可以拖取镜像,运行容器等等. 2.最右边的实际上是互联网的sass服务,docker daemon可以和Regis ...

  10. DOCKER学习_016:Docker镜像仓库和HARBOR的简单安装和管理

    一 镜像仓库介绍 1.1 简介 镜像仓库用于存放 Docker镜像 Docker registry提供镜像仓库服务 一个 Docker registry可以包含多个镜像仓库 仓库分为公共镜像仓库与私有 ...

随机推荐

  1. xml解析demo使用

    package lianxi; import java.io.FileOutputStream;import java.io.OutputStreamWriter; import javax.xml. ...

  2. nopcommerce3.6中文包

    nopCommerce 语言包,xml文件 点击下载:3.60_language_pack_zh.rar (60.82 kb) 下载后解压通过后台导入即可使用.如何导入?点击这里

  3. 从今天开始学习Swift--关于Swift (转)

    WWDC2014推出了新的编程语言,大家都站在了新的起跑线上,希望转发的本文能对园内的朋友一点介绍和帮助,如果大家对swift感兴趣,欢迎踊跃利用google. 原文地址:http://www.coc ...

  4. HTML知识点梳理

  5. Vue.js 插件开发

    Vue.js 的插件应当有一个公开方法 install .这个方法的第一个参数是 Vue 构造器 , 第二个参数是一个可选的选项对象: MyPlugin.install = function (Vue ...

  6. Android Studio 小技巧(2):AS中Button文字默认大写的问题

    问题类型 设置Layout中添加一个Button <Button android:id="@+id/bt_showerror" android:layout_width=&q ...

  7. 在西雅图华盛顿大学 (University of Washington) 就读是怎样一番体验?

    http://www.zhihu.com/question/20811431   先说学校.优点: 如果你是个文青/装逼犯,你来对地方了.连绵不断的雨水会一下子让写诗的感觉将你充满. 美丽的校园.尤其 ...

  8. SINAMICS S120 Parking axis设置,安转拆除或屏蔽电机

    1) P897 Parking axis selection 此参数可以连接到周期通讯的报文中(PZD) 2) 标准报文111中,已经连接此参数

  9. IOS 读取xib里的子控件

    interface ViewController () /**获取.plist数据*/ @property (nonatomic,strong) NSArray *aps; @end @impleme ...

  10. 计算最大矩形面积,POJ(2082)

    题目链接:http://poj.org/problem?id=2082 把矩形按照高度一次递增的循序排列,当违反这一规则的时候,更新ans,用新的data替换之前的矩形.然后最后扫一遍. #inclu ...