powershell - Windows docker 容器以交互模式运行,如果不删除容器就无法停止容器,无法提交容器
问题描述
我正在使用带有 Windows 容器的 Windows docker。
我正在以交互模式启动一个容器,以便我可以运行一些 powershell 脚本来启用远程 iis 管理。我试图将这些脚本添加到我的 dockerfile 以将它们合并到图像中,但它们似乎并没有粘住,除非我在容器运行后在 powershell 中运行它们。
我正在启动容器
docker run -it --rm --name mycontainer --entrypoint powershell myimage
然后,如果我在做出我需要的更改后尝试提交它,我会收到一个关于无法在 Windows 上提交正在运行的容器的错误。所以我停止了容器
docker stop mycontainer
然后当我寻找要提交的容器时,它就消失了。我相信这与使用 -it 参数运行它有关。
有没有办法让 powershell 访问容器,进行更改,然后将容器提交到包含我所做更改的新映像?
解决方案
终于找到了办法。我现在不使用 -it -rm 创建容器,而是使用 -d 创建容器,并使用 docker exec powershell 运行 powershell 命令。然后我可以停止容器并将其提交到一个图像,新图像包含我所做的所有更改。
推荐阅读
- python - TypeError:无法使用 pickle.load 解压不可迭代的 int 对象
- python - Python 从另一个进程访问 Selenium Webdriver 实例
- azure - 在没有用户凭据的情况下将 Azure 自动化帐户登录到 Azure AD
- java - 找出特定时间范围是否在数组中空闲
- excel - 根据多个文件夹中不同工作簿的单元格值复制行
- flutter - 有没有办法从插件添加 JS 文件?
- internationalization - 如何在 AlpacaJS 表单中翻译国家字段?
- c# - Ajax 请求在 net core 2.2 中不起作用
- node.js - 使用 lamda 将字符串数据保存在 Dynamodb 中不起作用
- prolog - Prolog 真值集