2017-07-02 140 views
0

我是码头工人。我使用Windows容器从Windows服务器2016“本地”运行docker,没有中间虚拟机(没有docker计算机),也没有docker工具箱,因此“主机”是运行docker的实际Windows Server。无法执行使用调用命令的码头运行

泊坞版本:

PS C:>泊坞窗版本 客户: 版本:17.03.1-EE-3 API版本:1.27 转到版本:go1.7.5 git的承诺:3fcee33 内置:周四03月30日19时31分22秒2017年 OS /拱门:窗口/ AMD64

服务器: 版本:17.03.1-EE-3 API版本:1.27(最低版本1.24) 转到版本:go1.7.5 Git commi T:3fcee33 内置:星期四03月30日19时31分22秒2017 OS /拱:视窗/ AMD64 实验:假 PS C:> i。从坞窗毂拉到图像。我需要在运行时替换Docker镜像中的文件,并将更改提交到镜像。

可以说我有Docker镜像中的Docker镜像里面有Sample.java和datafile.properties。

我希望替换与Hello.java和data.properties [我把从GitHub这些文件]

如何将我做,在一个自动化的方式?任何建议和一些关于这个例子他会有所帮助。提前致谢。

回答

0

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

如果您的目录中有您的Hello.javadatafile.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 . 

(末(.)期间表示,使用当前目录为“建设语境” - 构建情境上传到泊坞窗守护程序,一切都在它可以被访问添加到您的码头工人图像使用COPYADD Dockerfile指令)

这是一个非常天真的例子,只是为了说明这个概念;我建议阅读文档,理解这个概念,并寻找更多的例子。

+0

没错。我可以在我的本地机器上执行此操作。我触发了一个PowerShell脚本,它将创建一个EC2 Windows实例,安装docker并将图像自动端到端地拖动。我使用New-PSSession来进入我新创建的实例,并通过Invoke-command传递每个命令。我无法运行交互式控制台(docker run 474614/my_repo cmd),它出现一个错误“这不是一个tty设备,试图以winpty为前缀”。我不知道如何让这个winpty在Windows实例上工作,或者是否有任何其他方式来实现这个工作 – syndy1989