Docker 在构建期间不会创建目录

2024-03-02

第一次尝试使用 Docker。在我的 Dockerfile 中执行以下步骤来创建目录,但是当我运行容器时,该目录不存在。

FROM ubuntu
MAINTAINER AfterWorkGuinness
RUN apt-get update
RUN apt-get install -y openssh-server
RUN mkdir /root/.ssh
RUN cd /root/.ssh
RUN ssh-keygen -t rsa -N "" -f id_rsa
VOLUME /root
EXPOSE 22

构建镜像:

docker build -t ubuntu-ssh --no-cache .

当我运行容器时测试目录:

docker run -it -v c:/users/awg/dev/tmp/home:/root ubuntu-ssh

root@39eec8fa51ad:/# cd ~/.ssh
bash: cd: /root/.ssh: No such file or directory

root@39eec8fa51ad:/# cd /root/.ssh
bash: cd: /root/.ssh: No such file or directory

使用一个命名的volume https://docs.docker.com/engine/admin/volumes/volumes/代替绑定挂载 https://docs.docker.com/engine/admin/volumes/bind-mounts/,

docker run -v tmphome:/root whatever

在命名卷中,文件在容器重新启动时仍将保留,但目录中的内容将在创建时复制到已安装的卷 https://docs.docker.com/engine/admin/volumes/volumes/#populate-a-volume-using-a-container。 Docker 根据使用的驱动程序选择存储数据的位置。local是默认值,数据默认为volumeDocker 数据目录中的目录,通常/var/lib/docker/volumes

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 在构建期间不会创建目录 的相关文章

随机推荐

  • 在单独的线程上分派托管 Win32 WndProc

    我正在通过非托管创建一个窗口CreateWindowEx使用 PInvoke 作为服务器来进行调度SendMessage来自不同进程的调用 这应该包裹在一个同步函数 类注册 窗口创建 像这样 public bool Start if Run
  • 创建连接文件的最佳实践

    我有一个应用程序 其中有一些缓存 队列和数据库的配置文件 public class ServerConfiguration ConfigurationSection ConfigurationProperty FOO DefaultValu
  • 使用 State 和 IO 的堆叠 monad 时,在流程中停止理解

    在这个 Scala 示例中 当结果为以下时我需要停止StopNow 我需要在打电话后执行此操作decisionStep 我怎样才能做到这一点 case class BusinessState trait BusinessResult cas
  • 比较文件名

    我想比较两个不同文件夹中的文件 我只想比较这两个不同文件夹中具有相同名称的文件 我想做的是比较一个软件的两个不同版本并找出有多少文件被更改 这将帮助您获取两个路径的文件 import java io File import java uti
  • 为什么 python webassets pyscss 不能在调试模式下从 scss 文件重新生成 css?

    我在 python webassets 库中使用 pyscss 编译器 并将 webassets 调试配置全部设置为 true 但是 当我对 scss 文件进行更改并重新加载包含生成的 css 文件的页面时 我发现 css 文件尚未重新生成
  • int main() { } (不带“void”)在 ISO C 中有效且可移植吗?

    C 标准指定了两种形式的定义main为一个 托管实施 int main void and int main int argc char argv 它可以以与上述 等效 的方式定义 对于 例如 您可以更改参数名称 替换int通过 typede
  • 查询客户交易数据

    我正在构建一个类似于个人理财的应用程序 为此 我需要获取有关该客户交易的信息 我设法运行了获取基本个人数据 https developer paypal com docs classic permissions service integr
  • 带中缀表示法的点自由样式

    您好 有没有办法在使用中缀表示法时编写点自由样式 f Int gt Int gt Int gt Int f a b a b 为什么你不能做这样的事情 f Int gt Int gt Int gt Int f a b a b or f a b
  • 使用 control.begininvoke 后 UI 仍然没有响应

    我制作了一个 C winforms 应用程序 现在我有一个带有很多按钮的表单 这些按钮调用大量的数字运算函数 其输出在文本框中更新 我调用 textbox begininvoke 方法 将委托传递给更新文本框中文本的函数 但是当文本很大时
  • 无法在单用户模式下启动sql server

    我正在尝试恢复我的本地 sql server sa 密码 我读到应该将其置于单用户模式 我就这样做了 我添加了 m 到启动参数 我没有运行 sql 代理 我重新启动了 Sql Server 当我尝试时 sqlmd S sqlexpress
  • Ruby on Rails 中的模型关系

    我正在 Rails 3 中开发一个新应用程序 但我不确定如何建立模型之间的关系 基本上我有一个model User and a model Project 用户可以创建项目 成为项目所有者 但除项目所有者之外的任何其他用户也可以加入该项目
  • 如何检查数组中的非零值(元素)

    我想知道如何编写一个函数来返回是否至少有三个值不等于 0 我搜索过类似的问题 但找不到任何有效的解决方案 为了解释我的问题 这里有一个例子 我有一个包含这些元素的数组 1 0 2 0 4 0 0 3 0 0 我想检查是否至少有 3 个元素不
  • file.read()、file.readline() 和迭代文件对象之间的区别[重复]

    这个问题在这里已经有答案了 我是计算机科学的新手 正在尝试在 python 中创建一个函数来打开我的计算机上的文件 我知道这个函数f readline 将当前行作为字符串抓取 但是这些函数的作用是什么f read and for line
  • Python - 将日期的字符串表示形式转换为 ISO 8601

    在Python中 如何转换这样的字符串 2010 年 12 月 16 日星期四 12 14 05 0000 为 ISO 8601 格式 同时保留时区 请注意 原始日期是字符串 输出也应该是字符串 而不是datetime或类似的东西 不过 我
  • 将 abel 包裹在复合材料中

    I have ScrolledComposite只允许垂直滚动 heighthint 400 在这个 ScrolledComposite 中 我还有另一个CompositeA 滚动高度可能超过 400 来存储所有其他小部件 我有一个很长的标
  • PIL ValueError:图像数据不足?

    当我尝试从 URL 获取图像并将其响应中的字符串转换为Image在 App Engine 内 from google appengine api import urlfetch def fetch img url try result ur
  • ConcurrentQueue 保存对象的引用或值? “内存不足”异常

    排队到 ConcurrentQueue 的对象是被复制到队列还是仅复制到它们的引用 我不明白任何场景 解释 我这样定义了一个 ConcurrentQueue BufferElement is a class I created privat
  • 可观察队列?

    是否有人编写了实现 INotifyCollectionChanged 的 Net 通用队列版本 或者是否已经在 Net 框架深处隐藏了某个版本 快速搜索没有显示任何结果 但接口很简单 扩展 Queue 类并添加对该接口的支持几乎是微不足道的
  • Dropbox SDK 401 错误

    我正在使用 Dropbox SDK 并且已将其设置为应用程序只能访问 Apps MyAPP 文件夹 我正在测试它并在线删除了该文件夹 现在 当我在应用程序中而不是要求重新链接 Dropbox 时 它会给我一个 401 错误 我不知道为什么它
  • Docker 在构建期间不会创建目录

    第一次尝试使用 Docker 在我的 Dockerfile 中执行以下步骤来创建目录 但是当我运行容器时 该目录不存在 FROM ubuntu MAINTAINER AfterWorkGuinness RUN apt get update