在linux映像上创建Dockerfile并装载azure文件共享
我正在尝试跟随,它展示了如何在LinuxVM中的文件夹上装载azure文件。唯一的区别是,我正在尝试将共享装载到使用Dockerfile创建的Linux容器上 虽然面临一些问题,但我理解需要以“特权”模式运行容器,以允许我运行mount命令。然而,到目前为止,我还没有成功,我找不到docker文件的引用做这样的事情 我正试图在Docker文件中运行此命令在linux映像上创建Dockerfile并装载azure文件共享,linux,azure,docker,drupal,Linux,Azure,Docker,Drupal,我正在尝试跟随,它展示了如何在LinuxVM中的文件夹上装载azure文件。唯一的区别是,我正在尝试将共享装载到使用Dockerfile创建的Linux容器上 虽然面临一些问题,但我理解需要以“特权”模式运行容器,以允许我运行mount命令。然而,到目前为止,我还没有成功,我找不到docker文件的引用做这样的事情 我正试图在Docker文件中运行此命令 RUN -it --privileged mount -t cifs filesharepath mountpath -o vers=3.
RUN -it --privileged mount -t cifs filesharepath mountpath -o vers=3.0,username=username,password=password,dir_mode=0777,file_mode=0777,serverino
然而,我不断地得到一个错误,比如非法字符-t
,它不会导致任何结果
所以第一个问题是,是否有可能从Docker文件中实现类似的功能?如果是,有什么可能性
更新:
装载的目的特别是将存储目录的drupa文件装载到azure文件共享。例如:var/sites/default/files到azure文件存储。这可能需要针对特定于drupal实现的解决方案。如果有人有想法,这将是有益的 感觉我们需要在这里澄清一些事情:
- Dockerfile是放置所有安装说明的地方。就像你想要一台基于ubuntu plus的linux机器一样,安装几个软件包。Dockerfile就是配置它的地方。它还允许配置暴露的端口和默认启动。时期将外部卷装载到容器内部的某个内容—在Dockerfile中没有任何意义,因为它不知道主机系统,也不应该知道
- 拥有docker文件后,您可以通过执行
来构建本地docker映像。所以,只有当您无法找到需要运行的公共映像时,才需要Dockerfiledocker build…
- 一旦你有了想要运行的映像,你就可以在主机操作系统上使用
选项执行--mount source=myvol2,target=/app
,将主机文件夹映射到容器内部文件夹docker run
命令可以在docker运行命令期间定义(从图像启动容器的基本且简单的方法)--mount
- 或者在docker compose文件中,如果您使用的是docker compose(通常是development env,以便在一个位置运行多个容器和配置)李>
- 或者在部署yaml文件中,如果您打算使用kubernetes(通常用于生产,在生产中您需要自动工作)