Docker maven 插件
Docker maven plugin
Docker 我发现的插件 (spotify/docker-maven-plugin) 使用本机 docker
应用程序,但据我了解 docker
只是一个 REST API "redirects" 命令 docker 守护进程的客户端。
如果我在 Windows 机器上使用 docker 并且 docker 守护程序在 Virtual Box 中的 Linux 上工作,则尤其如此。
那么,是否存在任何 docker-maven-plugin 不需要本机 docker
应用程序,只需要 "talking" 和 docker 守护进程而不需要任何中介?
它不需要本机 docker
应用程序,只要知道 docker 守护程序在哪里。
Docker-Maven-插件
根据 documentation:
By default the plugin will try to connect to docker on localhost:2375. Set the DOCKER_HOST environment variable to connect elsewhere.
DOCKER_HOST=tcp://<host>:2375
这就是客户端知道 Docker 守护程序在哪里的方式。 Docker-Maven-Plugin 尊重这个(和其他)Docker 环境变量来知道 Docker 所在的位置,无论它是本地的,在 VM 运行ning 上的虚拟机管理程序上VirtualBox 在本地,或在完全远程的服务器上。
Docker机器
如果您使用的是 Docker 机器,这些环境变量会在您 运行 时设置:
$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://172.16.62.130:2376"
export DOCKER_CERT_PATH="/Users/<yourusername>/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"
$ eval "$(docker-machine env default)"
Docker 机器的文档:
Create & Connect to Docker Machine
Docker 对于 Windows
如果您使用的是 Windows,您可能会发现使用本机客户端 Docker 有助于为所有内容提供更本机的体验。
您也可以像这样使用提到的 docker-maven-plugin:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>yourImageName</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<dockerHost>https://192.168.99.100:2376</dockerHost>
<dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
这两个标签很重要:
<dockerHost>https://192.168.99.100:2376</dockerHost>
<dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>
我正在使用 docker 文件,您必须使用此标记定义哪个路径:
<dockerDirectory>src/main/docker</dockerDirectory>
现在您可以构建您的 jar 并通过以下方式生成 docker 图像:
mvn 包docker:build
Docker 我发现的插件 (spotify/docker-maven-plugin) 使用本机 docker
应用程序,但据我了解 docker
只是一个 REST API "redirects" 命令 docker 守护进程的客户端。
如果我在 Windows 机器上使用 docker 并且 docker 守护程序在 Virtual Box 中的 Linux 上工作,则尤其如此。
那么,是否存在任何 docker-maven-plugin 不需要本机 docker
应用程序,只需要 "talking" 和 docker 守护进程而不需要任何中介?
它不需要本机 docker
应用程序,只要知道 docker 守护程序在哪里。
Docker-Maven-插件
根据 documentation:
By default the plugin will try to connect to docker on localhost:2375. Set the DOCKER_HOST environment variable to connect elsewhere.
DOCKER_HOST=tcp://<host>:2375
这就是客户端知道 Docker 守护程序在哪里的方式。 Docker-Maven-Plugin 尊重这个(和其他)Docker 环境变量来知道 Docker 所在的位置,无论它是本地的,在 VM 运行ning 上的虚拟机管理程序上VirtualBox 在本地,或在完全远程的服务器上。
Docker机器
如果您使用的是 Docker 机器,这些环境变量会在您 运行 时设置:
$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://172.16.62.130:2376"
export DOCKER_CERT_PATH="/Users/<yourusername>/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"
$ eval "$(docker-machine env default)"
Docker 机器的文档:
Create & Connect to Docker Machine
Docker 对于 Windows
如果您使用的是 Windows,您可能会发现使用本机客户端 Docker 有助于为所有内容提供更本机的体验。
您也可以像这样使用提到的 docker-maven-plugin:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>yourImageName</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<dockerHost>https://192.168.99.100:2376</dockerHost>
<dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
这两个标签很重要:
<dockerHost>https://192.168.99.100:2376</dockerHost>
<dockerCertPath>/Users/your_user/.docker/machine/machines/default</dockerCertPath>
我正在使用 docker 文件,您必须使用此标记定义哪个路径:
<dockerDirectory>src/main/docker</dockerDirectory>
现在您可以构建您的 jar 并通过以下方式生成 docker 图像:
mvn 包docker:build