容器的数据存储

容器在删除之后,里面所有的数据都会丢失,如果其他程序需要用到某一部分的数据那就没办法了。

所以可以将容器内的数据存储到容器之外,比如存储到宿主机内。(Docker提供了好几种方法)

将容器内的数据存放到容器外可以通过将宿主机内的某个目录挂载给容器作为某一部分的存储空间使用。

先在/root目录下新建一个名为data的目录以供容器使用。

[root@promote ~]# mkdir data
[root@promote ~]# ls
data

接着创建容器并将data目录挂载给容器作为存储。

使用-v 宿主机目录:容器目录.

这里以http为例,因为http存放静态网页的默认位置在/usr/local/apache2/htdocs,所以将data目录用作此目录的存储空间,专门用来存放网页。

[root@promote ~]# docker run -d --name http -p 80:80 -v ~/data:/usr/local/apache2/htdocs docker.io/httpd
c6b71842d961663d380cecae5373c10236109e860bad18207195e9636ddb121f

这样就挂载好了。

现在在data目录下新建一个index.html静态网页试试。

[root@promote ~]# cd data/
[root@promote data]# cat index.html
<html>
<body>This is a test</body>
</html>

接着访问宿主机的80端口查看。

[root@promote ~]# curl 127.0.0.1:80
<html>
<body>This is a test</body>
</html>

说明data目录挂载到容器成功。

http容器里原来的index.html被覆盖了。

如果访问宿主机80端口时被拒绝访问:

[root@promote ~]# curl 127.0.0.1:80
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.<br />
</p>
</body></html>

可以尝试关闭selinux再访问,setenforce 0是临时关闭selinux

[root@promote ~]# setenforce 0
[root@promote ~]# curl 127.0.0.1:80
<html>
<body>This is a test</body>
</html>

Docker容器学习与分享11的更多相关文章

  1. Docker容器学习与分享07

    Docker容器网络 在分享06中学完了bridge网络,接着学习none网络和host网络. Docker在安装时会在host上默认创建三个网络,分别是bridge.host.null. [root ...

  2. Docker容器学习与分享10

    Docker容器向外提供服务 用分享04中的Nginx服务来试一下. 不过这次我直接用Nginx镜像创建容器,先下载Nginx镜像. [root@promote ~]# docker search n ...

  3. Docker容器学习与分享04

    Docker容器的基本操作(2) 基于docker分享03的centos容器,接着学习docker容器的基本操作. docker分享03中创建了一个centos镜像,如果想要查看容器的具体信息就要使用 ...

  4. Docker容器学习与分享03

    Docker容器的基本操作 所有的docker命令都是以docker开头,也就是指调用docker程序.我学习的第一个命令就是docker run,运行一个容器.以Docker分享02中的容器为例: ...

  5. Docker容器学习与分享09

    Docker容器之间的相互通信 先新建两个不同的网段,就用分享08里的两个网段作为新建的网段. [root@promote ~]# docker network ls NETWORK ID NAME ...

  6. Docker容器学习与分享06

    Docker容器网络 Docker有三种原生网络:none网络.host网络.bridge网络. 先来学习一下bridge网络. 首先使用ifconfig命令查看一下本机的网络设备: 从图中可以看见多 ...

  7. Docker容器学习与分享05

    Docker镜像操作 学完了一些最基本的操作之后,我学习了一些关于docker镜像的基本操作. 首先来学习一下从docker hub上拉取镜像,以centos镜像为例,使用docker search命 ...

  8. Docker容器学习与分享02

    1.docker容器的创建 首先运行一个centos容器,感受一下Docker容器的便捷 首先先看一下镜像仓库 发现仓库里没有镜像,也就是没有创建容器的模板,这时考虑从REPOSITORY中拉取镜像( ...

  9. Docker容器学习与分享01

    1.什么是容器? 容器技术是一种虚拟化的方案,与传统的虚拟机不同,传统的虚拟机是通过中间层将一台或多台独立的机器虚拟运行于物理硬件之上,而容器是直接运行在操作系统内核之上的用户空间. 所以容器虚拟化又 ...

随机推荐

  1. js设计模式之发布/订阅模式模式

    一.前言 发布订阅模式,基于一个主题/事件通道,希望接收通知的对象(称为subscriber)通过自定义事件订阅主题,被激活事件的对象(称为publisher)通过发布主题事件的方式被通知. 就和用户 ...

  2. 【Leetcode】338. Bit位计数

    每次刷leetcode都有一种发现新大陆的感觉. 题目链接:https://leetcode-cn.com/problems/counting-bits/description/ 给定一个非负整数 n ...

  3. C# 如何判断ie版本号和获取注册表中的信息

    1.获取ie版本号 string ver = (new WebBrowser()).Version.ToString(); 例如:11.0.10586.103 int mainVer = (new W ...

  4. C#输出26个大写字母

    C#输出26个大写字母,较快的方法:

  5. winform窗体 控件 【ListView】

      ListView  表格试图 1.设置视图属性 Details     试图可见 2.设置列      Columns集合 编辑列——  添加列,修改列名 3.添加行数据      Items 集 ...

  6. Thinkphp 全选、反选 批量删除

    完整案例 前台 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  7. Python发送短信提醒

    Python发送短信可借助腾讯云平台提供的短信服务 发送短信需要的及格参数: 1.SDK_AppID和SDK_Key 2.签名: 3.模板ID 下面贴出源码DEMO: from qcloudsms_p ...

  8. docker 知识点汇总

    目录 什么是 Docker Docker 简介 Docker 的特点 如何使用 Docker 镜像的常用操作 容器的常用操作 Docker 命令汇总 手工制作 java 镜像 使用 Dockerfil ...

  9. Service 动态更新 UI

    http://blog.csdn.net/u013724061/article/details/38642049 最终效果: 动态显示当前时间和电量 思路: 首先在Activity里用内部类定义两种广 ...

  10. JAVA设计模式详解(三)----------装饰者模式

    今天LZ带给大家的是装饰者模式,提起这个设计模式,LZ心里一阵激动,这是LZ学习JAVA以来接触的第一个设计模式,也许也是各位接触的第一个设计模式.记得当初老师在讲IO的时候就提到过它:“是你还有你, ...