IDEA 使用插件连接远程 Docker (Dockerfile)
IDEA 使用插件连接远程 Docker
测试地址
https://github.com/Rain-with-me/JavaStudyCode/tree/main/2-springboot-docker
插件使用
- 下载插件
依赖
-
版本
<properties> <java.version>1.8</java.version> <docker.host>http://192.168.80.80:2375</docker.host> <docker.maven.plugin.version>0.40.0</docker.maven.plugin.version> </properties>
-
插件
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<!-- <executions>-->
<!-- <!–如果想在项目打包时构建镜像添加–>-->
<!-- <execution>-->
<!-- <id>build-image</id>-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>build</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<configuration>
<!-- Docker 远程管理地址-->
<dockerHost>${docker.host}</dockerHost>
<images>
<image>
<!--定义镜像名称-->
<name>mall-tiny/${project.name}:${project.version}</name>
<!--定义镜像构建行为-->
<build>
<!--定义基础镜像-->
<from>java:8</from>
<args>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</args>
<!--定义哪些文件拷贝到容器中-->
<assembly>
<!--定义拷贝到容器的目录-->
<targetDir>/</targetDir>
<!--只拷贝生成的jar包-->
<descriptorRef>artifact</descriptorRef>
</assembly>
<!--定义容器启动命令-->
<entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint>
<!--定义维护者-->
<maintainer>macrozheng</maintainer>
</build>
</image>
</images>
</configuration>
</plugin>
Dockerfile 部署项目
- IDEA 使用插件
登录远程主机,更改 Docker 配置
## 修改docker服务文件
vi /lib/systemd/system/docker.service
## 将原来的ExecStart前面加上#号注释掉,然后再下面追加一行
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
## 重新加载配置
systemctl daemon-reload
## 重启docker服务
systemctl restart docker.service
-
打开IDEA底部的
Services
面板,双击 Docker 图标进行连接,可以对远程服务器上的Docker容器和镜像进行管理
- 随便搞个小 Demo 测试即可
注意:java:8 已经被弃用
- 创建 Dockerfile
# 该镜像需要依赖的基础镜像
FROM openjdk:8
# 将当前目录下的jar包复制到docker容器的/目录下
COPY ./demo-0.0.1-SNAPSHOT.jar /test/demo-0.0.1-SNAPSHOT.jar
# 声明服务运行在8080端口
EXPOSE 8080
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/test/demo-0.0.1-SNAPSHOT.jar"]
# 指定维护者的名字
MAINTAINER haha
- 打开配置,记得配置下面设置,不然无法访问
-
配置成功的样子
-
运行之后更改下面的配置,然后执行配置即可
可以参考:
也可以去参考 mall 的配置
对照下之前使用的docker run
命令,大概就能知道这些配置的作用了;
docker run -p 8080:8080 --name mall-tiny \
--link mysql:db \
--link redis:redis \
-e 'spring.profiles.active'=prod \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-tiny/logs:/var/logs \
-d mall-tiny/mall-tiny:1.0.0-SNAPSHOT
-
查看日志,成功就可以直接访问
docker logs 容器
Docker Compose 部署
-
这玩意有点玄学,有时就报错,重启即可
-
IDEA 找到 docker-compose.exe 文件