docker - 本地主机上的 docker 容器存储
问题描述
我不知道如何在互联网上搜索我的问题......我有以下案例:
我从我的 centos 7 vm 构建了一个基本映像。然后我把它移到了我的 ldapserver。已经安装了 ldap 和 phpldapadmin。我的意图是对我的应用程序进行 docker 化。所以我创建了以下 Dockerfile:
[root@ldapserver ~]# cat /root/ldap_container/dockerfile_ldapserver/Dockerfile
FROM msaka/ldapserver
RUN yum -y install epel-release; yum clean all
RUN yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel; yum clean all
RUN yum -y install phpldapadmin; yum clean all
COPY phpldapadmin.conf /etc/httpd/conf.d/phpldapadmin.conf
COPY hosts /etc/hosts
COPY openldap /etc/openldap
COPY config.php /etc/phpldapadmin/config.php
RUN chown root:apache /etc/phpldapadmin/config.php
正如您从我的基本映像中看到的那样,我安装了 openldap 并且 phpldapadmin 还复制了一些文件以使容器准备好工作。最后我运行我的容器:
docker run -p 80:80 -itd ldapserver2 httpd -D FOREGROUND
我没有任何专用卷。从我的主机 VM 我可以访问 phpldapadmin 的 Web 界面。我添加了一个新用户,测试到 ldap_client 的连接。它正在工作。然后我停止容器。
通常,如果您在容器上创建例如一个文件然后停止它,您将丢失数据,除非您提交或分配专用 FS。就我而言,当我使用以下命令再次启动我的图像(不是停止的容器,而是图像)时:
docker run -p 80:80 -itd ldapserver2 httpd -D FOREGROUND
我看到我的修改在那里。为什么 ?我期待失去从 phpldapadmin 容器创建的用户。它不应该因为我没有承诺而消失吗?是否因为在应用层上进行了更改而发生这种情况?
另一件奇怪的事情是,当我停止容器并在主机上启动 httpd 时,我登录到 phpldapadmin 的 Web 界面,我看到了同一个用户 :)) 这就像容器上发生的变化也会影响我的本地主机。
谢谢你的帮助。
解决方案
推荐阅读
- javascript - 如何使用 javascript 从 PHP 中禁用按钮
- string - 分离字符串的单词并将它们存储在 MIPS 中的堆栈中
- fastapi - 使用 FastAPI 和 Pydantic,如何定义带有描述的可选字段
- java - tomcat生成空ROOT文件夹但不解压war文件
- ibm-cloud-infrastructure - Softlayer 关系数据中心 Pod NetwokZone Vlan 和子网
- python - 骨架 AFM 图像比较
- python - 聚合具有两个条件的数据
- c# - C# 在 HKEY_LOCAL_MACHINE 中读取或编辑 Windows 注册表值问题
- aws-cli - 如何过滤标签和值 aws cli
- python - 为 Markdown 文档中的所有相关图像链接添加 url