Linux配置和IDEA安装插件连接到docker
Linux 配置
配置docker远程链接端口
首先编辑我们服务器上的docker文件
vi /usr/lib/systemd/system/docker.service
修改以ExecStart开头的行(centos 7):
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
如果是centos 7以下的直接添加-H tcp://0.0.0.0:2375 即可
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
修改后保存文件,然后重启docker
systemctl daemon-reload
service docker restart
测试是否正常
这里的2375是之前配置的端口
curl http://localhost:2375/version
看到返回信息基本上就没有问题了
然后开启端口,或者关闭防火墙,二者选其一即可
# 开端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
# 关防火墙
chkconfig iptables off
然后打开浏览器 访问 你的虚拟机ip:2375/version
IDEA安装插件连接到docker
首先下载docker插件,好像idea2019自带了docker插件
下载的话在Marketplace种搜索Docker安装即可
然后配置docker地址,在你的File | Settings | Build, Execution, Deployment | Docker
配置完成链接之后,出现了框中的内容即可
链接成功之后会列出容器和镜像
使用docker部署springboot 项目
说明:这里我就部署一个eureka作为部署 springboot项目的演示吧,其他springboot项目同理
首先在你的springboot项目中的根目录下添加一个docker文件夹并创建Dockerfile文件
文件内容为
#这是基础镜像
FROM openjdk:8-jdk-alpine
#复制jar包到镜像中,并且将名字改成 app.jar
ADD *.jar app.jar
# 在容器启动的时候运行命里,来启动我们的项目 (这其实就是一段Linux命令)
# 这个启动命里根据你的实际情况更改
ENTRYPOINT ["java","-jar","/app.jar", "--spring.profiles.active=eureka2001"]
然后增加配置
配置内容为
命里解释
-
Image tag : 指定镜像名称和tag,镜像名称为 docker-eureka2001,tag为v1.0
-
Bind ports : 绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]
-
Bind mounts : 将宿主机目录挂到到容器内部目录中。格式为[宿主机目录]:[容器内部目录]。这个springboot项目会将日志打印在容器 /home/developer/app/logs/ 目录下,将宿主机目录挂载到容器内部目录后,那么日志就会持久化容器外部的宿主机目录中。
修改pom文件将build部分修改为如下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--添加自己的启动类路径!-->
<mainClass>com.cpc.microserviceeurekaserver.MicroserviceEurekaServerApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</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>
<!-- 这是将 jar包copy 到 docker目录下-->
<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>
然后打包maven
运行
先pull基础镜像,然后再打包镜像,并将镜像部署到远程docker运行,这里我们可以看到镜像名称为docker-eureka2001:v1.0,docker容器为docker-eureka2001-server
浏览器访问:
这里中为输出会乱码,解决方式如下:
找到IDEA安装目录的bin目录,在idea.exe.vmoptions和idea64.exe.vmoptions文件中追加以下内容:
-Dfile.encoding=utf-8