파일 정보 경로를 다음과 같이 수정합니다.
/etc/docker/daemon.json
구성 파일에 다음 내용을 추가합니다.
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
참고: 해당 내용이 없는 경우 daemon.json, 원격 액세스를 활성화하려면 /etc/docker/ 디렉터리에
touch daemon.json
tcp를 생성하세요. Unix는 로컬 액세스를 활성화하지 않은 경우 서버에서 사용할 때 다음 오류가 발생합니다. :
unix:///var/run/docker.sock에서 Docker 데몬에 연결할 수 없습니다. docker 데몬이 실행 중인가요?
수정이 완료된 후 다음 명령을 순서대로 실행하세요.
#重新加载配置文件 systemctl daemon-reload # 重启服务 systemctl restart docker.service # 查看端口是否开启 默认端口2375 netstat -anp|grep 2375
다음 명령을 실행합니다.
添加指定需要开放的端口: firewall-cmd --zone=public --add-port=2375/tcp --permanent 重载入添加的端口: firewall-cmd --reload 查询指定端口是否开启成功: firewall-cmd --query-port=2375/tcp
참고: 위 구성은 모두 방화벽이 켜져 있을 때 수행됩니다. 예를 들어 내 서버에는 방화벽이 구성되어 있지 않으며 실행 시 다음 정보가 표시됩니다.
마지막으로 구성이 적용되는지 확인해 보겠습니다.
curl http://127.0.0.1:2375/info
다음 정보가 나타나면 구성에 성공한 것입니다.
아이디어 버전이 더 높으면 docker 플러그인이 내장되어 있습니다
없어도 걱정하지 마세요. 직접 설치할 수 있습니다
참고: 위의 192.168.1.2는 내 서버 IP입니다. 서버 IP로 변경하면 됩니다.
적용을 클릭한 후
클릭하여 연결하면 docker 구성의 컨테이너 정보를 찾을 수 있습니다
설치 플러그인: Docker-maven-plugin
<!--docker-maven-plugin插件打包--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>ninesun@qq.com</maintainer> <!--切换到Root目录--> <workdir>/ROOT</workdir> <cmd>["java", "-version"]</cmd> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint> <!--指定DockerFile路径--> <!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址--> <dockerHost>http://192.168.1.2:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录--> <directory>${project.build.directory}</directory> <!--用于指定需要复制的jar文件--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
내 모든 Maven 구성은 다음과 같습니다.
4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.6 com.example docker 0.0.1-SNAPSHOT docker docker 11 true true org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test <!--docker-maven-plugin插件打包--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <!--镜像名称--> <imageName>${project.artifactId}</imageName> <!--指定标签--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像jdk1.8--> <baseImage>java</baseImage> <!--制作者提供本人信息--> <maintainer>ninesun@qq.com</maintainer> <!--切换到Root目录--> <workdir>/ROOT</workdir> <cmd>["java", "-version"]</cmd> <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint> <!--指定DockerFile路径--> <!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>--> <!--指定远程docker api地址--> <dockerHost>http://192.168.1.2:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/ROOT</targetPath> <!--用于指定需要复制的根目录--> <directory>${project.build.directory}</directory> <!--用于指定需要复制的jar文件--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> org.springframework.boot spring-boot-maven-plugin
참고: 플러그인을 성공적으로 가져온 후 디렉터리 구조는 다음과 같습니다.
하나를 삭제해야 합니다. 클래스를 시작하고, 그렇지 않으면 패키징이 실패합니다
이미지를 빌드하기 전에 먼저 프로젝트를 패키징해야 합니다
cmd를 통해 프로젝트 디렉터리에 들어가세요
Execute
mvn docker:build
다음과 같은 메시지가 패키징 성공했음을 알리는 메시지가 나타납니다
다음, 우리의 아이디어로 돌아가면 볼 수 있습니다
이것이 우리의 패키징된 이미지입니다
서버에서 실행
docker images
또한 이미지 정보를 볼 수 있습니다
우리 서버에서 실행
docker run -d --name idea-docker-test -p 8089:8080 docker
참고: 포트 8089를 노출한 이유는 8080과의 충돌 때문이므로 상황에 맞게 변경하면 됩니다.
다음으로 액세스해 보겠습니다. 우리가 작성한 테스트 인터페이스:
성공적으로 배포되고 액세스된 것을 볼 수 있습니다
Idea에서는 방금 시작한 이미지와 출력 로그도 볼 수 있습니다
위 내용은 Idea는 어떻게 SpringBoot 프로젝트를 Docker 이미지로 신속하게 패키징하고 배포합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!