zoukankan      html  css  js  c++  java
  • Docker容器学习与分享11

    ####容器的数据存储

    容器在删除之后,里面所有的数据都会丢失,如果其他程序需要用到某一部分的数据那就没办法了。 所以可以将容器内的数据存储到容器之外,比如存储到宿主机内。(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>
    
  • 相关阅读:
    DataTable distinct 去重复
    EF 实体字段设置主键和自增
    select into from 和 insert into select 的用法
    EF的 JOIN操作
    Linq左关联 右关联 内关联
    MySQL MGR集群搭建
    论用户体验测试:牛逼的功能千篇一律,好的体验万里挑一
    Spring Cloud使用总结
    数据采集与分析的那些事——从数据埋点到AB测试
    如何能低成本地快速获取大量目标用户,而不是与竞争对手持久战?
  • 原文地址:https://www.cnblogs.com/Timesi/p/9308590.html
Copyright © 2011-2022 走看看