将Docker主机数据挂在到容器中

dcoker 提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts, tmpfs。
volumes: Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)
bind mounts: 存储在宿主机系统的任意位置,主要是将宿主机上的某个文件目录挂在到docker下供数据存储。
tmpfs:挂载存储在宿主机系统的内存中,不会写入宿主机的文件系统。

管理卷:
docker volume create tomcat8081
docker volume inspect tomcat8081

用卷创建一个容器:
docker run -itd --name=ng01 -p 91:80 --mount src=ng01,dst=/usr/share/nginx/html nginx

或者:

docker run -itd --name=ng01 -p 89:80 -v ng01:/usr/share/nginx/html nginx

#不指定卷会自动创建
docker run -itd --name=ng01 -p 90:80 --mount src=,dst=/usr/share/nginx/html nginx

创建的卷所在位置:

/var/lib/docker/volumes/

删除卷:
docker volume rm ng01

删除容器:
docker container stop ng01
docker container rm ng01

bind形式绑定
docker run -itd --name=ng01 --mount type=bind,src=/root/app,dst=/usr/share/nginx/html nginx

或者

docker run -itd --name=ng -p 88:80 -v /root/app:/usr/share/nginx/html nginx

查看容器详情

docker inspect ng01

#如果源文件、源目录不存在,不会自动创建,会报错。
#挂载目标在容器中非空目录,则该目录现有内容将被隐藏

volume特点:

1、多个运行容器之间的共享数据,多个容器可以同时挂载相同的卷。

2、当容器停止或被移除时,该卷依然存在

3、当明确删除卷时,卷才会被删除

4、将容器的数据存储在远程主机或其他存储

5、将数据从一台docker主机迁移到另一台时,先停止容器,然后备份卷的目录(/var/lib/docker/volumes

)

bind mount 特点:

1、从主机共享配置文件到容器,默认情况下,挂载主机/etc/resolv.conf到每个容器,提供dns解析

2、在docker主机上的开发环境和容器之间共享源代码。 例如,将maven target目录挂载到容器中, 每次在docker主机上构建maven项目时,容器都可以访问构建的项目包。

3、当docker主机的文件或目录结构保证与容器所需的绑定挂载一致时

原文地址:https://www.cnblogs.com/salmonLeeson/p/11680234.html

时间: 2024-10-08 10:46:22

将Docker主机数据挂在到容器中的相关文章

[docker] 管理docker容器中的数据

之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两种管理Docker中数据的主要方法. 数据卷 数据卷容器 数据卷 一个数据卷就是经过特殊设计的,在一个或多个容器中通过UFS文件系统提供的一些特性 实现数据持久化或共享. 数据卷可以在容器之间共享和重复利用 可以对数据卷里的内容直接进行修改 对镜像的更新不会改变数据卷的内容 卷会一直持续到没有容器使

Docker实现数据持久化

由于Docker技术的火爆,以至于现在大大小小的公司都在使用Docker.对Docker熟悉的朋友都明白DOcker容器运行是有生命周期的,如果docker容器发生故障,那么就意味着容器中的数据也将丢失.那么对于企业来说的话,数据是重要的!如何做到对docker容器中的数据持久化就是运维人员需要考虑的问题了!本篇博文将了解如何对容器中的数据进行持久化! 在了解Docker数据持久化之前,需要对Docker的存储类型有一个简单的了解,执行以下命令即可看出: [[email protected] ~

在Docker容器中部署Web应用

本文直接讲解如何在Docker容器中实战部署一个Web应用程序,关于Docker相关的概念和如何安装Docker请参考相关资料完成. 第一步:工具准备 演示如何在Docker容器中部署一个Java Web应用程序,需要准备的软件工具包括:jre,tomcat和webapp应用.另外,为了实现在容器启动时自动启动webapp,需要编写一个脚本工具完成该工作. 安装jre,请参考:http://www.wikihow.com/Install-Java-on-Linux 安装tomcat,请参考:ht

无需安装 vsftpd , 直接使用 FTP 来管理 docker 容器中的文件

无图无真相,先放个效果图: 背景 使用 docker 来跑一些服务很方便,但是有的时候想管理容器里面的文件却很麻烦 -- 一般常规做法有3种: 通过数据卷或数据卷容器的方式 启动容器的时候时候启动 vsftpd 或者 sshd 等服务,并开启端口映射,然后通过 ftp/sftp 连上去管理 进入容器的终端,通过命令行管理 但是这些做法都有一定的缺陷和不便: 1和2都是需要在启动容器的时候做一些配置,如果容器已经启动了就歇菜了.而且2需要额外的端口映射,占用主机的端口.3的做法比较 geek ,而

在 Docker 容器中运行应用程序

案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 mailer 程序,运行于后台,当接收到事件后会向管理员发送邮件. 容器 agent: 该容器运行一个 watcher 程序,以交互模式运行,用于不断地监测 web 服务的运行情况,一旦出现故障会立即向 mailer 容器发送消息. 创建容器 创建并运行 web 容器 $ docker run --

Docker之数据卷Volume(七)

一.简介 Docker数据卷(volume)机制.volume是存在于一个或多个容器中的特定文件或文件夹,这个目录以独立于联合文件系统的形式在宿主机中存在,并为数据的共享与持久化提供便利. 1)volume在容器创建时就会初始化,在容器运行时就可以使用其中的文件 2)volume能在不同的容器之间共享和重用 3)对volume中数据的操作会马上生效 4)对volume中数据的操作不会影响到镜像本身 5)volume的生存周期独立于容器的生存周期,即使删除容器,volume仍然会存在,没有任何容器

Docker入门-数据挂载

Docker数据管理 在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 数据卷默认会一直存在,即使容器被删除 注意: 数据卷的使用,类似于Linux下对目录或文件进行mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷. Docker中提

Docker之数据卷和数据卷容器

数据卷是一个可供容器使用的特殊目录,可以在容器之间共享和重用,对数据卷的修改会马上生效,卷会一直存在直到没有容器使用,数据卷的使用类似于mount 数据卷容器就是一个普通的容器,可专门提供数据卷供其他容器挂载使用,可以在容器之间共享一些持续更新的数据 1:创建数据卷 利用镜像centos,创建一个名为tomcat的容器,并在后台以守护进程方式工作,且将本地的/b2b/目录挂在在新建立的tomcat容器的/test目录下 [email protected]:/home/zxl# docker ru

如何实现跨 Docker 主机存储?- 每天5分钟玩转 Docker 容器技术(73)

从业务数据的角度看,容器可以分为两类:无状态(stateless)容器和有状态(stateful)容器. 无状态是指容器在运行过程中不需要保存数据,每次访问的结果不依赖上一次访问,比如提供静态页面的 web 服务器. 有状态是指容器需要保存数据,而且数据会发生变化,访问的结果依赖之前请求的处理结果,最典型的就是数据库服务器. 简单来讲,状态(state)就是数据,如果容器需要处理并存储数据,它就是有状态的,反之则无状态. 对于有状态的容器,如何保存数据呢? 前面在 Docker 存储章节我们学习