docker-运维-idea中使用docker部署spring boot项目
idea中使用docker部署spring boot项目开启docker远程访问修改docker配置文件:重启docker服务校验idea中布署boot使用docker-image-plugin插件方式直接执行Dockerfile方式idea中使用docker部署spring boot项目开启docker远程访问修改docker配置文件:vi /lib...
·
idea中使用docker部署spring boot项目
开启docker远程访问
修改docker配置文件:
vi /lib/systemd/system/docker.service
找到ExecStart,将修改如下:
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
[root@bluesky dc-redis]# vi /lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 ## 改了这里
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
...
重启docker服务
[root@bluesky dc-redis]# systemctl daemon-reload
[root@bluesky dc-redis]# service docker restart
Redirecting to /bin/systemctl restart docker.service
校验
curl http://localhost:2375/version
[root@bluesky dc-redis]# curl http://localhost:2375/version
{"Platform":{"Name":"Docker Engine - Community"}....
idea中布署boot
现有spring boot项目,项目结构:
boot-docker
-> src
-> main
-> test
-> Dockerfile
-> pom.xml
注意Dockerfile的位置!!,和 src 同级
Dockerfile内容:
FROM jdk8:latest
VOLUME /tmp
COPY target/boot-docker.jar app.jar # target/boot-docker.jar 的路径是相对于
# Dockerfile的位置,所以Dockerfile位置很重要!!
RUN sh -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
直接执行Dockerfile方式
连接Docker server

idea底部可以看到Docker的服务面板:

如果不能看到Docker服务面板,可以通过keymap中, 设置快捷键显示:

构建镜像,点击 Edit configuration:


直接运行,如果运行成功,可以在docker面板看到:

根据镜像创建容器:


使用docker-image-plugin插件方式
在 pom.xml中加入 plugin :
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</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>${project.artifactId}</imageName>
<!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定我们项目中Dockerfile文件的路径-->
<dockerDirectory>${project.basedir}/</dockerDirectory>
<!--指定远程docker 地址-->
<dockerHost>http://192.168.x.xx8: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>
然后,在右侧点击package,就可以构建镜像了,其他的和上一种方式一样
更多推荐




所有评论(0)