允許Docker遠程訪問(可選)
-
編輯docker的宿主機文件
/lib/systemd/system/docker.service$ vi /lib/systemd/system/docker.service # ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock后面加上-H 0.0.0.0:2375 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock后面加上-H 0.0.0.0:2375 $ wq! -
重啟服務(wù)
$ systemctl daemon-reload $ service docker restart -
驗證
訪問:http://192.168.246.135:2375/info,能出現(xiàn)數(shù)據(jù)就表示開啟成功
IDEA 配置docker-maven-plugin
創(chuàng)建Spring Boot項目,這一步略
-
配置pom.xml
<?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.6.1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.pasca</groupId> <artifactId>student-docker</artifactId> <version>latest</version> <name>Student-Docker</name> <description>Student-Docker</description> <properties> <java.version>1.8</java.version> <docker.repostory>192.168.246.135:2375</docker.repostory> <docker.registry.name>pasca</docker.registry.name> </properties> <dependencies> ...其他項目依賴省略 </dependencies> <build> <plugins> ...其他插件省略 <!--使用docker-maven-plugin插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <!--將插件綁定在某個phase執(zhí)行--> <executions> <execution> <id>build-image</id> <!--將插件綁定在package這個phase上。也就是說, 用戶只需執(zhí)行mvn package ,就會自動執(zhí)行mvn docker:build--> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--指定生成的鏡像名,這里是我們的項目名,注意不能有大寫字母--> <imageName>pasca/${project.artifactId}</imageName> <!--指定標簽 這里指定的是鏡像的版本,我們默認版本是latest--> <imageTags> <imageTag>${project.version}</imageTag> </imageTags> <!-- 指定我們項目中Dockerfile文件的路徑--> <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory> <!--指定遠程docker 地址--> <dockerHost>http://192.168.246.135:2375</dockerHost> <!-- 這里是復制 jar 包到 docker 容器指定目錄配置 --> <resources> <resource> <targetPath>/</targetPath> <!--jar包所在的路徑 此處配置的即對應(yīng)項目中target目錄--> <directory>${project.build.directory}</directory> <!-- 需要包含的 jar包 ,這里對應(yīng)的是 Dockerfile中添加的文件名 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> </project> -
編寫
DockerfileFROM bitnami/java:1.8.312 MAINTAINER Docker Practice Project by Pasca ADD *.jar app.jar ENV TZ Asia/Shanghai EXPOSE 8080 ENTRYPOINT ["java","-jar","/app.jar"] -
制作鏡像
mvn package經(jīng)過這一步,本地項目已經(jīng)在遠程服務(wù)上面創(chuàng)建了鏡像
-
編寫
docker-compose.yamlversion: '3.8' services: pasca-app-student: image: pasca/student-docker:latest container_name: pasca-app-student restart: always ports: - '8080:8080' 啟動
docker compose up -d