Docker容器学习与分享11

Posted timesi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker容器学习与分享11相关的知识,希望对你有一定的参考价值。

容器的数据存储

容器在删除之后,里面所有的数据都会丢失,如果其他程序需要用到某一部分的数据那就没办法了。
所以可以将容器内的数据存储到容器之外,比如存储到宿主机内。(Docker提供了好几种方法)
将容器内的数据存放到容器外可以通过将宿主机内的某个目录挂载给容器作为某一部分的存储空间使用。
先在/root目录下新建一个名为data的目录以供容器使用。

[[email protected] ~]# mkdir data
[[email protected] ~]# ls
data

接着创建容器并将data目录挂载给容器作为存储。
使用-v 宿主机目录:容器目录.
这里以http为例,因为http存放静态网页的默认位置在/usr/local/apache2/htdocs,所以将data目录用作此目录的存储空间,专门用来存放网页。

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

这样就挂载好了。
现在在data目录下新建一个index.html静态网页试试。

[[email protected] ~]# cd data/
[[email protected] data]# cat index.html
<html>
        <body>This is a test</body>
</html>

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

[[email protected] ~]# curl 127.0.0.1:80
<html>
        <body>This is a test</body>
</html>

说明data目录挂载到容器成功。
http容器里原来的index.html被覆盖了。

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

[[email protected] ~]# 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

[[email protected] ~]# setenforce 0
[[email protected] ~]# curl 127.0.0.1:80
<html>
        <body>This is a test</body>
</html>

以上是关于Docker容器学习与分享11的主要内容,如果未能解决你的问题,请参考以下文章

Docker容器学习与分享12

将 Docker 容器限制为单个 cpu 核心

微服务轻量化容器技术相关同事分享的Docker学习汇总

云原生技术分享 | Docker入门系列:初识容器技术

分享吧带你初识Docker

11《每天5分钟玩转Docker容器技术》学习-Docker命令之容器生命周期管理