• 售前

  • 售后

热门帖子
入门百科

IDEA 集成 docker 实现长途摆设的详细步调

[复制链接]
luly靓 显示全部楼层 发表于 2021-8-14 15:02:13 |阅读模式 打印 上一主题 下一主题
1. docker 服务器开启长途访问

登录 docker 地点的长途服务器,使用下令
  1. vim /usr/lib/systemd/system/docker.service
复制代码
修改设置文件,需注意,修改时确认本身的账户拥有相应权限
  1. 主要操作是找到 <mark></mark>ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 这一行,注释掉,重新添加一行,在后面<mark></mark>新增-H tcp://0.0.0.0:2375表示打开2375端口,支持远程连接 docker
复制代码
  1. #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  2. ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
复制代码
保存设置文件后需要将设置重新载入,重启 docker,可使用如下下令
  1. systemctl daemon-reload
  2. systemctl restart docker.service
复制代码
2. IDEA 安装 docker 插件

一般比力新的 IDEA 都绑定了 docker 插件,如未绑定在 IDEA 的 Plugins 中搜索安装 docker 插件即可,安装完毕重启见效

重启后可以通过 Build,Execution,Depolyment ——> Docker 路径找到 Docker 插件,再此新增一个毗连长途 Docker 的设置

毗连乐成后,在 IDEA 插件面板中可以检察长途 docker 主机的镜像和容器,也可以检察容器运行的日志等信息

3. docker 镜像构建上传

要将本地打包的 jar 构建成 docker 镜像,需要在项目 pom 文件中添加构建插件设置。如下是一个 SpringBoot 项目模块的打包设置,关键点如下:
  1. 构建一个名称为 [code]nathan-api
复制代码
的 jar 包,起首添加
  1. spring-boot-maven-plugin
复制代码
插件添加一个
  1. docker-maven-plugin
复制代码
插件,设置 docker 镜像的各个关键属性。注意,这个插件会下载
  1. com.spotify.docker-maven-plugin
复制代码
jar 包,如下载出错更换几个版本试试, 版本列表可参考 Maven 中心堆栈 [/code]
  1. <build>
  2.      <finalName>nathan-api</finalName>
  3.      <plugins>
  4.          <plugin>
  5.              <groupId>org.springframework.boot</groupId>
  6.              <artifactId>spring-boot-maven-plugin</artifactId>
  7.              <version>2.4.2</version>
  8.              <executions>
  9.                  <execution>
  10.                      <goals>
  11.                          <goal>repackage</goal>
  12.                      </goals>
  13.                  </execution>
  14.              </executions>
  15.          </plugin>
  16.          <plugin>
  17.              <groupId>com.spotify</groupId>
  18.              <artifactId>docker-maven-plugin</artifactId>
  19.              <version>1.1.0</version>
  20.              <!--将插件绑定在某个phase执行-->
  21.              <executions>
  22.                  <execution>
  23.                      <id>build-image</id>
  24.                      <!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
  25.                      <phase>package</phase>
  26.                      <goals>
  27.                          <goal>build</goal>
  28.                      </goals>
  29.                  </execution>
  30.              </executions>
  31.              <configuration>
  32.                  <!--指定docker文件目录-->
  33.                  <dockerDirectory>${project.basedir}/docker</dockerDirectory>
  34.                  <!--指定生成的镜像名-->
  35.                  <imageName>${project.artifactId}</imageName>
  36.                  <!--指定标签-->
  37.                  <imageTags>
  38.                      <imageTag>latest</imageTag>
  39.                  </imageTags>
  40.                  <!--指定远程 docker api地址-->
  41.                  <dockerHost>http://xxx.168.146.63:2375</dockerHost>
  42.                  <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
  43.                  <resources>
  44.                      <resource>
  45.                          <targetPath>/</targetPath>
  46.                          <!--jar 包所在的路径  此处配置的 即对应 target 目录-->
  47.                          <directory>${project.build.directory}</directory>
  48.                          <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile 中添加的文件名 -->
  49.                          <include>${project.build.finalName}.jar</include>
  50.                      </resource>
  51.                  </resources>
  52.              </configuration>
  53.          </plugin>
  54.      </plugins>
  55. </build>
复制代码
上一步调中在 docker 的 maven 插件中设置了 docker 文件的目录,指定的是模块根目录下的
  1. docker
复制代码
文件夹,则创建一个与 src 平级的名称为 docker 的目录,在此中新建一个名称为
  1. Dockerfile
复制代码
的文件,其内容如下:
  1. FROM java:8
  2. VOLUME /tmp
  3. # 将打包好的 jar 复制到 app.jar 中
  4. ADD nathan-api.jar app.jar
  5. EXPOSE 20561
  6. # 以下为 jar 包启动命令配置
  7. ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+8", "-jar", "app.jar"]
复制代码
颠末以上设置,已经将构建 docker 镜像的动作绑定到了 maven 的
  1. package
复制代码
打包下令,则实行打包即可
  1. 笔者在这一步遇到过 [code]ADD failed: file not found in build context or excluded by .dockerignore
复制代码
报错,重要问题是没有找到
  1. Dockerfile
复制代码
文件中 ADD 下令需复制的源文件。出现这个报错起首检查
  1. Dockerfile
复制代码
文件设置的文件路径是否正确,其次检查现实打包的 jar 名称是否与
  1. Dockerfile
复制代码
设置的文件名称雷同。笔者检查设置,确认没有路径和名称错误,最后 clean 重启几次 IDEA 后又好了。不要问为什么,问就是玄学[/code]

docker 镜像构建好之后,右击镜像文件可以选择创建容器。创建新的容器最简朴的步调是为容器命名,然后添加宿主机到容器的端口映射,创建乐成后容器会自动运行

到此这篇关于IDEA 集成 docker 实现长途部署的详细步调的文章就先容到这了,更多相干IDEA长途部署内容请搜索脚本之家以前的文章或继承欣赏下面的相干文章盼望大家以后多多支持脚本之家!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作