之前在公司都是自动打包部署到远程docker上,也没有考虑过怎么搞的,今天在公司内网docker 上测试,跟同事学习了下,记录一下分享,day day up  !!!!!, 开始吧。

1、安装docker插件

这步我不记得有没有安装,因为我使用的是商业版,可以看下你是不是安装了

        打开setting–>plugins–>搜索docker–>点击install

使用idea部署项目到远程docker_香菜聊游戏的博客

 这个插件是可视化的管理docker 

pom中增加下面的配置

<build>         <finalName>ccp-data-SNAPSHOT</finalName>         <plugins>             <plugin>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-maven-plugin</artifactId>                 <configuration>                     <fork>true</fork>                     <mainClass>com.tyjt.ccpdata.CcpDataApplication</mainClass>                 </configuration>                 <executions>                     <execution>                         <goals>                             <goal>repackage</goal>                         </goals>                     </execution>                 </executions>             </plugin>         </plugins>         <resources>             <resource>                 <directory>src/main/resources</directory>                 <filtering>true</filtering>             </resource>         </resources>     </build>

2、docker 开启远程访问

因为要在远程管理docker,所以需要打开远程访问权限,

修改docker.service

配置地址: /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd.sock -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
这里开启远程端口为2375

3、idea中配置docker 连接

想要管理远程的docker 的服务器,file->setting->build -> Docker ,增加一个配置,

name 随便起,最主要的是TCP 连接属性 

填写完成之后会有提示连接成功,这个时候你已经可以管理远程的docker了

使用idea部署项目到远程docker_香菜聊游戏的博客

 在控制台 service窗口可以看到远程的信息了

使用idea部署项目到远程docker_香菜聊游戏的博客

 docker-compose 是docker-compose启动的服务

containers 是docker 上正在运行的服务

Images 是docker上有的机器

Networks 是每个服务的网络

Volumes 是每个服务的挂载

4、部署本地项目到docker

4.1 创建dockerfile

创建一个springboot项目,在项目中创建dockerfile

# 基础镜像 FROM tyjt-java11-agent:latest # 默认工作空间 VOLUME /tmp WORKDIR /opt/tyjt # 复制为ccp-data-0.0.1-SNAPSHOT.jar ADD target/ccp-data-SNAPSHOT.jar /opt/tyjt/ccp-data-SNAPSHOT.jar ADD run.sh /opt/tyjt/run.sh # RUN bash -c 'touch /ccp-data-SNAPSHOT.jar' # 时钟 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #port EXPOSE 10801 #执行 ENTRYPOINT ["bash","/opt/tyjt/run.sh"]

     执行的脚本如下

#/bin/bash PROFILE=$ENV java -jar /opt/tyjt/ccp-data-SNAPSHOT.jar

4.2 创建docker 配置

通过edit-configration,添加一个docker的运行配置

点击modify 可以做端口映射,相当于docker run中的p命令

使用idea部署项目到远程docker_香菜聊游戏的博客

 这里在运行之前做了一个maven的打包工作

clean package -U -DskipTests

使用idea部署项目到远程docker_香菜聊游戏的博客

 4.3 运行起来看看效果

点击运行可以看到下面的日志,同时也能看到项目的启动日志

使用idea部署项目到远程docker_香菜聊游戏的博客

 可以登录到docker 所在机器看下运行的容器

已经部署上去了

注意: 如果部署不上去,提示Failed to deploy,可能是因为权限不够,使用管理员权限打开idea

5、总结

这只是一个工具的使用,虽然很方便,但是在我们日常的开发中很少这么用,因为我们都是CI 一键部署,几乎不使用这种方式