Docker化一个应用程序
我有一个Java应用程序。 我知道如何启动一个Docker容器并从这里和那里检索图像,但是如何将我的java应用程序文件传递给Docker,例如从版本控制或其他目录?
-
您可以将文件复制到应用程序的新泊坞窗图像。 首先,创build您的Dockerfile ,然后构build映像,然后运行它。
-
另一种方法是运行“准备使用”正式的图像,并通过卷挂载你的文件。
一步一步的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脚本。
- Windows Server 2016 OpenJDK docker容器
- 如何将_directly_ COPY文件复制到Windows容器中的“Program Files(x86)”文件夹中?
- 没有安装组文件 – CentOS 7 – 组安装
- 如何使用Docker Compose在Debian容器中设置LAMP堆栈?
- docker工具本地开发 – 我需要2个Docker文件吗?
- 我怎样才能将Jenkins这样的应用程序安装到使用chef-recipe的CentOs映像中运行的正在运行的CentOs容器中?
- 有没有一种方法可以避免使用Docker推送node_modules?
- 如何在Dockerfile中声明一个命名卷?
- 如何获得docker容器的内容(Python / Pandas)