Docker化应用程序
Dockerizing an app
我有一个 java 应用程序。我知道如何启动 Docker 容器并从各处检索图像,但如何将我的 java 应用程序文件传递给 Docker,例如来自版本控制或其他目录?
使用带有 docker run
的 volumes 选项并安装一个目录(或多个目录),其中包含您的 java 应用程序和将启动它的小 bash 脚本。 Dockerfile 中的 ENTRYPOINT 可以按名称指向该 bash 脚本。
您可以将文件复制到应用程序的新 docker 映像中。首先,创建您的 Dockerfile and then build 图像,然后 运行 它。
另一种方法是 运行 "ready to use" 官方镜像并通过 volumes.
挂载你的文件
一步一步的Dockerfile示例:
a) 看看这个 repo https://github.com/starikovs/stupidbox,这是插件的代码和 Dockerfile。
b) Dockerfile 具有以下命令:
FROM nginx
COPY . /usr/share/nginx/html
VOLUME /usr/share/nginx/html
这意味着你要 docker 将当前目录中的所有文件复制到一个新的 docker 图像。 VOLUME 是一个特殊的目录,您的 data/files 存储在其中,您也可以将任何文件夹挂载为一个卷。
c) 要从 Dockerfile 构建一个新的 docker 图像,只需 cd
到该目录和 运行 docker build . -t imagename
, 构建后你可以检查你的图像是否已经在 docker images
.
的帮助下构建
d) 您的图片可以使用了,现在可以 运行 了。当然Dockerfile还有很多其他选项,这个例子只是为了展示流程。
"ready to use"官方图片示例:
另一方面,您可以使用现成的官方图像。看看 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
挂载到镜像中。
我有一个 java 应用程序。我知道如何启动 Docker 容器并从各处检索图像,但如何将我的 java 应用程序文件传递给 Docker,例如来自版本控制或其他目录?
使用带有 docker run
的 volumes 选项并安装一个目录(或多个目录),其中包含您的 java 应用程序和将启动它的小 bash 脚本。 Dockerfile 中的 ENTRYPOINT 可以按名称指向该 bash 脚本。
您可以将文件复制到应用程序的新 docker 映像中。首先,创建您的 Dockerfile and then build 图像,然后 运行 它。
另一种方法是 运行 "ready to use" 官方镜像并通过 volumes.
挂载你的文件
一步一步的Dockerfile示例:
a) 看看这个 repo https://github.com/starikovs/stupidbox,这是插件的代码和 Dockerfile。
b) Dockerfile 具有以下命令:
FROM nginx
COPY . /usr/share/nginx/html
VOLUME /usr/share/nginx/html
这意味着你要 docker 将当前目录中的所有文件复制到一个新的 docker 图像。 VOLUME 是一个特殊的目录,您的 data/files 存储在其中,您也可以将任何文件夹挂载为一个卷。
c) 要从 Dockerfile 构建一个新的 docker 图像,只需 cd
到该目录和 运行 docker build . -t imagename
, 构建后你可以检查你的图像是否已经在 docker images
.
d) 您的图片可以使用了,现在可以 运行 了。当然Dockerfile还有很多其他选项,这个例子只是为了展示流程。
"ready to use"官方图片示例:
另一方面,您可以使用现成的官方图像。看看 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
挂载到镜像中。