本文主要记录一下本身在idea
上使用docker
发布spring boot
应用
docker
的远程访问idea
安装docker
插件idea
上链接远程docker
服务spring boot
工程,编写测试接口pom.xml
添加docker
构建插件Dockfile
文件idea
中构建docker
镜像本人使用的阿里云esc
云服务器,docker
的版本是Docker version 19.03.4, build 9013bf5
java
1.一、修改docker.server
文件,该文件所在的路径是/lib/systemd/system
spring
cd /lib/systemd/system/ vim docker.server
1.二、修改ExecStart
以下所示docker
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
1.三、从新加载配置文件vim
systemctl daemon-reload
1.四、重启docker
服务安全
systemctl restart docker.service
1.五、查看端口是否生效 netstat -nlpt
以下图所示,可见上面配置的2375
端口已经生效bash
1.六、进入阿里云ESC
管控台,添加2375/2375
安全组配置服务器
打开idea
偏好中的插件,在其中搜索docker
插件进行安装,因为本人的idea
插件已经包含了docker
插件,跳过此步骤并发
若是显示Connection succesful
则表示已经和远程docker服务链接成功app
测试接口代码以下maven
@RestController public class HelloController { @GetMapping(value = "/hello") public String hello() { return "docker & spring boot"; } }
执行maven
打包命令mvn clean package -DskipTests=true
<properties> <java.version>1.8</java.version> <docker.image.prefix>demo</docker.image.prefix> </properties> ...省略 <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.1.0</version> <configuration> <imageName> ${docker.image.prefix}/${project.artifactId} </imageName> <dockerDirectory></dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
6.一、编写dockerfile
文件
FROM java:8 VOLUME /tmp COPY target/demo-0.0.1-SNAPSHOT.jar demo.jar RUN bash -c "touch /demo.jar" EXPOSE 8089 ENTRYPOINT ["java","-jar","demo.jar"]
6.二、点击加号按钮,选择docker
,选择dockerfile
,填写镜像的标签以及绑定的端口
点击运行该dockerfile
上面的操做会进行镜像的构建,镜像构建成功以后会出现以下的提示,至此镜像构建成功并发送至远程的服务器上,并自动执行了该镜像。
注意点:因为我是屡次进行相同标签的构建,在服务器上执行docker images
操做会出现以下的状况
其中出现了REPOSITORY
为<none>
TAG
也是<none>
这一点很不友好,实际的开发中须要注意。