我的编程空间,编程开发者的网络收藏夹
学习永远不晚

IDEA 集成 docker 实现远程部署的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

IDEA 集成 docker 实现远程部署的方法

这篇文章主要介绍“IDEA 集成 docker 实现远程部署的方法”,在日常操作中,相信很多人在IDEA 集成 docker 实现远程部署的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”IDEA 集成 docker 实现远程部署的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. docker 服务器开启远程访问

登录 docker 所在的远程服务器,使用命令 vim /usr/lib/systemd/system/docker.service 修改配置文件,需注意,修改时确认自己的账户拥有相应权限

主要操作是找到ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 这一行,注释掉,重新添加一行,在后面新增-H tcp://0.0.0.0:2375表示打开2375端口,支持远程连接 docker

#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

保存配置文件后需要将配置重新载入,重启 docker,可使用如下命令

systemctl daemon-reloadsystemctl restart docker.service

2. IDEA 安装 docker 插件

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

IDEA 集成 docker 实现远程部署的方法

重启后可以通过Build,Execution,Depolyment ——> Docker 路径找到 Docker 插件,再此新增一个连接远程 Docker 的配置

IDEA 集成 docker 实现远程部署的方法

连接成功后,在 IDEA 插件面板中可以查看远程 docker 主机的镜像和容器,也可以查看容器运行的日志等信息

IDEA 集成 docker 实现远程部署的方法

3. docker 镜像构建上传

要将本地打包的 jar 构建成 docker 镜像,需要在项目 pom 文件中添加构建插件配置。如下是一个 SpringBoot 项目模块的打包配置,关键点如下:

构建一个名称为 nathan-api 的 jar 包,首先添加 spring-boot-maven-plugin 插件添加一个 docker-maven-plugin 插件,配置 docker 镜像的各个关键属性。注意,这个插件会下载 com.spotify.docker-maven-plugin jar 包,如下载出错更换几个版本试试, 版本列表可参考 Maven 中央仓库
 <build>     <finalName>nathan-api</finalName>     <plugins>         <plugin>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-maven-plugin</artifactId>             <version>2.4.2</version>             <executions>                 <execution>                     <goals>                         <goal>repackage</goal>                     </goals>                 </execution>             </executions>         </plugin>         <plugin>             <groupId>com.spotify</groupId>             <artifactId>docker-maven-plugin</artifactId>             <version>1.1.0</version>             <!--将插件绑定在某个phase执行-->             <executions>                 <execution>                     <id>build-image</id>                     <!--用户只需执行mvn package ,就会自动执行mvn docker:build-->                     <phase>package</phase>                     <goals>                         <goal>build</goal>                     </goals>                 </execution>             </executions>             <configuration>                 <!--指定docker文件目录-->                 <dockerDirectory>${project.basedir}/docker</dockerDirectory>                 <!--指定生成的镜像名-->                 <imageName>${project.artifactId}</imageName>                 <!--指定标签-->                 <imageTags>                     <imageTag>latest</imageTag>                 </imageTags>                 <!--指定远程 docker api地址-->                 <dockerHost>http://xxx.168.146.63: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>

上一步骤中在 docker 的 maven 插件中配置了 docker 文件的目录,指定的是模块根目录下的 docker 文件夹,则创建一个与 class="lazy" data-src 平级的名称为 docker 的目录,在其中新建一个名称为 Dockerfile 的文件,其内容如下:

FROM java:8VOLUME /tmp# 将打包好的 jar 复制到 app.jar 中ADD nathan-api.jar app.jarEXPOSE 20561# 以下为 jar 包启动命令配置ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+8", "-jar", "app.jar"]

经过以上配置,已经将构建 docker 镜像的动作绑定到了 maven 的 package 打包命令,则执行打包即可

笔者在这一步遇到过 ADD failed: file not found in build context or excluded by .dockerignore报错,主要问题是没有找到 Dockerfile 文件中 ADD 命令需复制的源文件。出现这个报错首先检查Dockerfile文件配置的文件路径是否正确,其次检查实际打包的 jar 名称是否与Dockerfile配置的文件名称相同。笔者检查配置,确认没有路径和名称错误,最后 clean 重启几次 IDEA 后又好了。不要问为什么,问就是玄学

IDEA 集成 docker 实现远程部署的方法

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

IDEA 集成 docker 实现远程部署的方法

到此,关于“IDEA 集成 docker 实现远程部署的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

IDEA 集成 docker 实现远程部署的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

IDEA 集成 docker 实现远程部署的方法

这篇文章主要介绍“IDEA 集成 docker 实现远程部署的方法”,在日常操作中,相信很多人在IDEA 集成 docker 实现远程部署的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”IDEA 集成 d
2023-06-20

IDEA部署Docker镜像的实现示例

本文主要介绍了IDEA部署Docker镜像的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-18

Nginx与Docker Kubernetes的集成部署实践(Nginx如何通过Kubernetes在Docker中进行部署?)

将Nginx与DockerKubernetes集成可实现Web服务器的高效部署和管理。使用Docker容器化Nginx并使用Kubernetes编排。部署流程涉及配置Nginx、构建镜像、推送到Docker仓库和应用Kubernetes配置。集成的好处包括自动化部署、可扩展性、安全性、CI/CD和可移植性。最佳实践包括使用适当的镜像、优化配置、使用YAML文件、监控和定期更新。
Nginx与Docker Kubernetes的集成部署实践(Nginx如何通过Kubernetes在Docker中进行部署?)
2024-04-02

java seata部署和集成的方法是什么

这篇文章主要讲解了“java seata部署和集成的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java seata部署和集成的方法是什么”吧!seata的部署和集成1.部署Se
2023-07-06

k8s部署redis集群实现的方法是什么

这篇文章主要介绍“k8s部署redis集群实现的方法是什么”,在日常操作中,相信很多人在k8s部署redis集群实现的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”k8s部署redis集群实现的方法
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录