允许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!
-
重启服务
$ systemctl daemon-reload $ service docker restart
-
验证
访问:http://192.168.246.135:2375/info,能出现数据就表示开启成功
IDEA 配置docker-maven-plugin
创建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执行--> <executions> <execution> <id>build-image</id> <!--将插件绑定在package这个phase上。也就是说, 用户只需执行mvn package ,就会自动执行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包所在的路径 此处配置的即对应项目中target目录--> <directory>${project.build.directory}</directory> <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> </project>
-
编写
Dockerfile
FROM 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
经过这一步,本地项目已经在远程服务上面创建了镜像
-
编写
docker-compose.yaml
version: '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