環(huán)境準(zhǔn)備
1.一個(gè)SpringBoot項(xiàng)目
2.服務(wù)器docker
2.1一鍵安裝docker
curl -sSL https://get.daocloud.io/docker | sh
image.png
2.2啟動(dòng)docker
systemctl start docker
image.png
2.3 docker需要開(kāi)放端口
vim /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd 后面加上 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
image.png
2.4重啟docker
systemctl daemon-reload
systemctl restart docker
2.5測(cè)試端口是否開(kāi)啟成功
本機(jī)win+r 輸入cmd控制臺(tái)輸入
telnet ip 端口
彈出小黑框代表成功
image.png
image.png
3.打開(kāi)idea項(xiàng)目
創(chuàng)建dockerfile文件,注意你加入jar包需要和你的項(xiàng)目一樣(springboot_docker_demo-0.0.1-SNAPSHOT.jar)
#使用jdk8作為基礎(chǔ)鏡像
FROM java:8
#指定作者
MAINTAINER tom
#暴漏容器的8088端口
EXPOSE 8088
#將復(fù)制指定的docker-demo-0.0.1-SNAPSHOT.jar為容器中的job.jar甸箱,相當(dāng)于拷貝到容器中取了個(gè)別名
ADD target/springboot_docker_demo-0.0.1-SNAPSHOT.jar /job.jar
#創(chuàng)建一個(gè)新的容器并在新的容器中運(yùn)行命令
RUN bash -c 'touch /job.jar'
#設(shè)置時(shí)區(qū)
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#相當(dāng)于在容器中用cmd命令執(zhí)行jar包 指定外部配置文件
ENTRYPOINT ["java","-jar","/job.jar"]
image.png
我的pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>pyf.example.docker</groupId>
<artifactId>springboot_docker_demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_docker_demo</name>
<description>springboot一鍵部署docker</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.1在idea中安裝docker插件育叁,重啟idea
image.png
3.2配置docker
image.png
TCP socket輸入服務(wù)器的ip地址和端口(ip+2375)
image.png
3.3配置對(duì)應(yīng)項(xiàng)目
image.png
3.4配置對(duì)應(yīng)的dockerfile文件和對(duì)應(yīng)的端口號(hào)
image.png
配置啟動(dòng)打包項(xiàng)目,在框內(nèi)輸入clean,package
image.png
3.5啟動(dòng)
image.png
image.png
3.6訪問(wèn)網(wǎng)頁(yè)芍殖,成功豪嗽!
image.png
3.7查看服務(wù)器上的docker
image.png
image.png