当前位置: 首页 > 知识库问答 >
问题:

Docker重用容器但更改体积

宋鸿
2023-03-14

是否可以更改卷本地路径?

使用Kitematic,我可以做到这一点。但我没有找到从cli执行此操作的方法。

例如,我运行docker使用:docker run--name nodejs-环境-v$(pwd):/code-it节点: 9.3.0 alpine sh

我想重复使用容器,但如果可能,请更改体积。

共有1个答案

公西翼
2023-03-14

每次使用docker run时,它都会重建您的容器。而是使用docker exec在现有容器中运行命令。尽管很遗憾,exec也不允许您指定新卷。据我所知,目前无法在现有容器中重新分配卷。

你最好的选择是重建容器。这不会花很长时间,它们应该是相当一次性的。或者,您可以使用卷来指向包含您需要的所有代码的父目录,或者仅仅使用卷来装载两个目录:

docker run --name nodejs-environment \
  -v $(pwd)/first_source:/first_source \
  -v $(pwd)/second_source:/second_source \
  -it node:9.3.0 alpine sh

但是,如果您确实需要此功能,即在容器构建完成后重新分配卷,则可以通过使用一些符号链接来完成此功能:

ln -s first_source/ link 
docker run --name nodejs-environment -v $(pwd)/link:/code -it node:9.3.0 alpine sh

完成第一个卷后,可以交换符号链接:

rm link
ln -s second_source/ link

请注意,如果您从docker run退出终端,它将停止您的容器。因此,您必须重新启动容器才能再次执行:

docker start nodejs-environment
docker exec -it nodejs-environment sh
 类似资料:
  • 问题内容: 为了运行ASP.NET Core应用程序,我生成了一个dockerfile,该文件构建了该应用程序,并将源代码复制到了容器中,该容器由Git使用Jenkins获取。因此,在我的工作区中,我在dockerfile中执行以下操作: 虽然Jenkins使用Git正确更新了主机上的文件,但Docker并未将其应用于我的映像。 我的基本构建脚本: 我尝试了各种不同的操作,例如和参数,并 在 构建

  • 为了运行ASP. NET Core应用程序,我生成了一个dockerfile来构建应用程序并将源代码复制到容器中,该容器由Git使用Jenkins获取。所以在我的工作区中,我在dockerfile中执行以下操作: 虽然Jenkins使用Git正确更新了我主机上的文件,但Docker不会将其应用于我的映像。 我的基本建筑脚本: 我尝试了不同的方法,例如用于docker run的rm和no cache

  • 问题内容: Docker新手在这里。 我已经设置了docker容器来运行一个简单的Node JS应用程序。 假设我有一个新版本的应用程序(例如 1.1 ),必须由Jenkins CI进行部署。在这里,我对Jenkins CI到底应该做什么应该有所了解: 应该关闭并删除旧容器( 1.0 )并启动新实例 1.1 吗? 要么 应该进入当前运行的容器并仅更新代码吗? 问题答案: 使用CI / CD工具(如

  • 对于烧瓶应用程序,我使用主机和容器之间的体积。我的docker-comment的web部分看起来像这样: 这是我的Dockerfile: 我认为我的卷创建得很好,因为当我从主机在中创建和更新时,容器中的也会更新。但问题是,当我从浏览器重新加载页面时,内容尚未更新。 当我做我得到了以下信息: 卷b26d14是多少?我不认为这是一个用docker-comment创作的。运行后返回: 我必须让它工作的唯

  • 问题内容: 我有一个Docker容器连接到两个网络,即默认桥和自定义桥。通过默认值,它仅在默认网络中链接到另一个容器,并且通过自定义网桥,它在本地网络中获取IP地址。 和桥: 这在内部网络上效果很好,但是,我遇到了路由问题: 如何将默认路由更改为192.169.130.3,以使该路由持续重启? 我可以在container1运行时更改它 但是重启后就消失了。我该如何改变? 更新: 显然,网络的词典顺

  • 问题内容: 当我运行docker时,下载的docker映像(似乎是)存储在某个地方。 由于该目录上的磁盘空间有限,因此我要同时将docker设置到多台机器上;有没有办法将此默认位置更改为ie ? 问题答案: 您可以使用option和您选择的目录来启动Docker守护程序。这将为Docker设置适当的运行时。 对于1.8版,应该是这样的: 对于早期版本,它将是: 从手册页: