一、修改配置文件,打開2375端口(請勿在生產環境使用,沒有認證不安全)
vim /lib/systemd/system/docker.service,找到配置參數ExecStart,在後面添加-H tcp://0.0.0.0:2375,變成了
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
重新加載配置文件和啓動:
systemctl daemon-reload
systemctl start docker(如果docker已經啓動了,應該執行systemctl restart docker)
二、idea安裝docker插件(Docker integration)並配置:
或者在下面這個圖裏編輯也行
三、新建springboot項目並配置pom文件:
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<!-- 跳過單元測試 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--將插件綁定在某個phase執行-->
<executions>
<execution>
<id>build-image</id>
<!--用戶只需執行mvn package ,就會自動執行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的鏡像名-->
<imageName>fred/${project.artifactId}</imageName>
<!--指定標籤-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定 Dockerfile 路徑-->
<dockerDirectory>${project.basedir}</dockerDirectory>
<!--指定遠程 docker api地址-->
<dockerHost>http://47.99.64.181:2375</dockerHost>
<!-- 這裏是複製 jar 包到 docker 容器指定目錄配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路徑 此處配置的 即對應 target 目錄-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,這裏對應的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
四、根目錄下編寫Dockerfile
FROM openjdk:8-jdk-alpine
ADD *.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
五、點擊maven的package進行構建
六、找到剛生成的鏡像,創建容器
設置完了啓動運行,到遠程服務器上docker ps看看是否有了,訪問一下試試。正常的話是可以的。