当我们创建了一个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. Fluent API配置

    1.Fluent API配置Model试用行更广 2.使用方法: public class TransferConfig: EntityTypeConfiguration<TransferInf ...

  2. the wait queue

    using System; using System.Collections.Concurrent; using System.Threading; namespace Base { public c ...

  3. MySQL GROUP_CONCAT长度限制引发的一场灾难

    GROUP_CONCAT函数是对查处的分组数据对于分组列相同的数据合并成一列用逗号隔开的函数. 但是该函数的长度有个默认限制,默认是1024个字符,超过就会截断,从而导致用count统计GROUP_C ...

  4. 一道Java集合框架题

    问题:某班30个学生的学号为20070301-20070330,全部选修了Java程序设计课程,给出所有同学的成绩(可用随机数产生,范围60-100),请编写程序将本班各位同学的成绩按照从低到高排序打 ...

  5. adobe air ane 中有的java class 打包 apk 后却没有了报NoClassDefFoundError ,ClassNotFoundException

    apache flex sdk 手机项目 09-18 10:34:55.030: E/AndroidRuntime(19513): FATAL EXCEPTION: main 09-18 10:34: ...

  6. Linux目录配置——Linux目录配置标准:FHS

    事实上,FHS针对目录树架构仅定义出三层目录下应该放置哪些数据,分别是下面三个目录: 一./(根目录):与开机系统有关 根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一 ...

  7. expres webpack es6 babel 构建多页系统开发架构

    开始写点什么... 只是一个思路........

  8. vos话务抽查小方法

    问题: 假如现在公司落地前缀主要有三个分别如下: 9150:主要用来走正规量 880:用来走正规量 660:全业务(合法) 已知: 非法业务量主要有:博彩,发票,白银,黄金,期货 合法非正规量有:保健 ...

  9. javascript代码工具库

    1. 垃圾收集 另一个块作用域非常有用的原因和闭包及回收内存垃圾的回收机制相关.这里简要说明一 下,而内部的实现原理,也就是闭包的机制会在第 5 章详细解释. 考虑以下代码: function pro ...

  10. 【^.^】hello world~~

    一直以来都没有在公共博客上写作的习惯,加之Evernote的强大和方便好用,让我仅仅依赖它就足以满足日常学习笔记的记录和整理. 不过看着Evernote里面记录的大大小小的笔记已经有400+了,觉得应 ...