Docker化一个应用程序

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

  1. 您可以将文件复制到应用程序的新泊坞窗图像。 首先,创build您的Dockerfile ,然后构build映像,然后运行它。

  2. 另一种方法是运行“准备使用”正式的图像,并通过卷挂载你的文件。

一步一步的Dockerfile例子:

一)看看这个回购https://github.com/starikovs/stupidbox ,这里是插件的代码和Dockerfile。

b) Dockerfile有以下命令:

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

这意味着您要求泊坞窗将所有文件从当前目录复制到新的泊坞窗图像。 VOLUME是存储数据/文件的特殊目录,也可以将任何文件夹挂载为卷。

c)从Dockerfile中构build一个新的Docker镜像,只需cd到该目录并运行docker docker build . -t imagename docker build . -t imagename ,build之后你可以检查你的图片是在docker images帮助下构build的。

d)您的图像已准备好使用,现在可以运行它。 当然,Dockerfile还有很多其他的选项,这个例子是显示stream程的。

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

另一方面,你可以使用准备使用正式的图像。 看看https://hub.docker.com/_/nginx/ NGINX官方图片。 在一个命令docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d 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到图片。

docker run使用volumes选项,并挂载一个包含你的java应用程序的目录(或多个目录)和一个可以启动它的小bash脚本。 您的Dockerfile中的ENTRYPOINT可以按名称指向该bash脚本。