Docker化应用

时间:2015-09-14 12:41:00

标签: docker dockerfile

我有一个java应用程序。我知道如何启动Docker容器并从这里和那里检索图像,但是如何将我的java应用程序文件传递给Docker,例如从版本控制或其他目录?

2 个答案:

答案 0 :(得分:1)

  1. 您可以将文件复制到应用的新泊坞窗图片中。首先,创建您的Dockerfile然后build图片,然后运行它。

  2. 另一种方法是运行“准备使用”官方图片并通过volumes安装文件。

  3. 一步一步的Dockerfile示例:

    a)查看此repo https://github.com/starikovs/stupidbox,这是插件的代码和Dockerfile。

    b) Dockerfile具有以下命令:

    FROM nginx
    COPY . /usr/share/nginx/html
    VOLUME /usr/share/nginx/html
    

    这意味着你说停靠者将所有文件从当前目录复制到新的泊坞窗图像。 VOLUME是存储数据/文件的特殊目录,也可以将任何文件夹作为卷安装。

    c)要从Dockerfile构建一个新的docker镜像cd到该目录并运行docker build . -t imagename,构建后可以检查您的图像是否已构建在docker images的帮助下。

    d)您的图片已准备就绪,现在可以运行了。当然,Dockerfile还有很多其他选项,这个例子是jut来显示流程。

    “准备好使用”官方图片示例:

    另一方面,您可以使用随时可以使用的官方图像。看看https://hub.docker.com/_/nginx/ NGINX官方图片。借助一个命令docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx,您可以运行nginx并将文件-v /some/content:/usr/share/nginx/html:ro装入图像。

答案 1 :(得分:0)

将卷选项与on CloseFieldEditor pFieldEditor -- declared locals to make it compile in strict mode local strPathogen,strIncubation,strDurationOfIllness,intID,strSQL local theColumnBeingEdited,tLineDataArray local tNewText put the text of pFieldEditor into tNewText -- this holds the value the user entered put the dgColumn of the target into theColumnBeingEdited -- find the column that has been changed put the dgDataOfLine[the dgHilitedLine of me] of me into tLineDataArray -- get the whole line of data and put it into an array put tNewText into tLinedataArray[theColumnBeingEdited] -- update the col in the array accordingly set the dgDataOfLine[the dgHilitedLine of me] of me to tLineDataArray -- update data in grid --Connect to database databaseConnect --Update Record put GetDataOfLine( the dgHilitedlines of me,"Pathogen") into strPathogen put GetDataOfLine( the dgHilitedlines of me,"Offset") into strIncubation put GetDataOfLine( the dgHilitedlines of me,"Duration") into strDurationofIllness put GetDataOfLine( the dgHilitedlines of me,"ID") into IntID put "UPDATE tblPathogen SET fldPathogenName='" & strPathogen & "', fldIncubation='" & strIncubation & "', fldDurationofIllness='" & strDurationofIllness & "'" into strSQL put " WHERE fldPathogenID=" & IntID after strsql put strsql into field "test" --SaveDataToDatabase theTable, theRowID, theColumnBeingEdited, theNewText end CloseFieldEditor 一起使用,并挂载包含java应用程序的目录(或多个目录)以及将启动它的小型bash脚本。 Dockerfile中的ENTRYPOINT可以按名称指向该bash脚本。