服务器端部署docker:
0.sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
1.sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2.sudo yum install docker-ce docker-ce-cli containerd.io -y
将docker的2375端口开放出来,如下:
cp /lib/systemd/system/docker.service /lib/systemd/system/docker.service.bak
vim /lib/systemd/system/docker.service
这句改成这样的: ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
systemctl daemon-reload
systemctl restart docker
netstat -plnt
服务端准备好了,下面来看客户端:
先在idea中安装docker的插件
连接刚部署的docker服务端:
写个demo测试下,我这边直接使用集成activeMq的项目,在项目中写入Dockerfile文件
FROM openjdk:8-jdk-alpine
ADD *.jar test.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]
这边文件我放置在了/src/main/docker下:
打包和上传docker需要引入插件:
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>${project.basedir}/libs</extdirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
进行项目打包:
运行:
运行成功
注意:项目打包的时候遇到找不到jar包的错,原因就在于我引入了外部(非maven导入的)jar包,如下图所示
解决办法是在pom.xml加入:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>${project.basedir}/libs</extdirs>
</compilerArguments>
</configuration>
</plugin>