【问题标题】:Unable to perform docker run using Invoke-command无法使用 Invoke-command 执行 docker run
【发布时间】:2017-07-02 07:25:19
【问题描述】:

我是 docker 新手。我从带有 Windows 容器的 Windows server 2016 “本地”运行 docker,中间没有中间 VM(没有 docker 机器),也没有 docker 工具箱,所以“主机”是我运行 docker 的实际 Windows Server。

Docker 版本:

PS C:> docker 版本 客户: 版本:17.03.1-ee-3 API版本:1.27 围棋版本:go1.7.5 Git 提交:3fcee33 建成时间:2017 年 3 月 30 日星期四 19:31:22 操作系统/Arch:windows/amd64

服务器: 版本:17.03.1-ee-3 API 版本:1.27(最低版本 1.24) 围棋版本:go1.7.5 Git 提交:3fcee33 建成时间:2017 年 3 月 30 日星期四 19:31:22 操作系统/架构:windows/amd64 实验:错误 PS C:> 我从 docker hub 中提取了图像。我需要在运行时替换 docker 镜像中的文件并提交对镜像的更改。

假设我在从 docker hub 拉取的 docker 映像中有 Sample.java 和 datafile.properties。

我想用 Hello.java 和 data.properties 替换它[我从 github 提取了这些文件]

我将如何以自动化的方式做到这一点?任何关于这方面的建议和一些例子都会有所帮助。提前致谢。

【问题讨论】:

    标签: powershell powershell-remoting docker-for-windows


    【解决方案1】:

    自动构建映像的最佳方法是使用 Dockerfile。一些信息可以在文档中找到,例如; https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

    如果您的 Hello.java 和 datafile.properties 在一个目录中,请在同一目录中创建一个 Dockerfile,例如;

    FROM the-base-image-on-docker-hub
    RUN rm /path/to/Sample.java
    COPY ./Hello.java /path/to/
    COPY ./datafile.properties /path/to/
    

    然后您可以构建您的图像,并将其“标记”为 myimage:latest 与;

    docker image build -t myimage:latest .
    

    (末尾的句点 (.) 表示;使用当前目录作为“构建上下文” - 构建上下文被上传到 docker 守护进程,并且可以使用其中的所有内容添加到您的 docker 映像中COPY 或 ADD Dockerfile 指令)

    这是一个非常幼稚的例子,只是为了说明这个概念;我建议阅读文档,了解概念并搜索更多示例。

    【讨论】:

    • 没错。我可以在我的本地机器上做到这一点。我正在触发一个 powershell 脚本,该脚本将创建一个 EC2 Windows 实例,安装 docker 并拉取自动端到端的图像。我正在使用 New-PSSession 进入我新创建的实例并通过 Invoke-command 传递每个命令。我无法运行交互式控制台(docker run 474614/my_repo cmd)它出现错误“这不是 tty 设备,请尝试为 winpty 加上前缀”。我不知道如何让这个 winpty 在 Windows 实例上工作,或者有没有其他方法可以让这个工作
    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    相关资源
    最近更新 更多