社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

IDEA神技:一键远程连接Docker部署SpringBoot!告别繁琐操作!

Java架构师技术 • 3 周前 • 108 次点击  
以下文章来源Java架构师技术,回复”Spring“获惊喜礼包

责编:架构君,来源:程序员追风

链接https://blog.csdn.net/2301_76154806

上一篇推文:架构师细谈八种架构"设计模式"及其优缺点

大家好,我是Java架构师

一、前置准备


要开始使用 Docker,请参考以下入门指南:

https://blog.csdn.net/2301_76154806/article/details/128781197



二、Docker 服务端配置


1. 配置 Docker 远程连接端口


首先,新建或修改 /etc/systemd/system/docker.service.d/override.conf 文件,确保其内容如下:

## Add this to the file for the docker daemon to use different ExecStart parameters (more things can be added here)
[Service]

ExecStart
=
ExecStart
=/usr/bin/dockerd

接着,在 /etc/docker/daemon.json 文件中(如果没有则新建),添加以下内容。请使用您自己的镜像地址,不必强制使用示例中的地址:

{
  "registry-mirrors"
: ["https://2v6jvius.mirror.aliyuncs.com"],
  "hosts"
: [
    "unix:///var/run/docker.sock"
,
    "tcp://0.0.0.0:2375"

  ]
}

然后重启 Docker 服务:

systemctl daemon-reload
systemctl restart docker

通过以下命令检查端口是否成功开放:

ss -tuln | grep 2375

如果看到类似以下的输出,说明端口开放成功:

tcp6       0      0 :::2375                 :::*                    LISTEN      8511/dockerd

 注意:请务必在腾讯云控制台中开放 2375 端口,同时务必限制访问来源。等到添加了证书后再完全开放。如果不清楚这点,建议暂停后续操作,特别是如果是在阿里云公网机器上,容易受到攻击。


接下来,输入以下命令以确认 Docker 端口暴露成功:

docker -H 121.204.196.203 ps

若能显示 Docker 的基本信息,说明端口暴露成功。关于更安全地开启 Docker 远程访问,请参考 CA 认证的配置。链接:

https://blog.csdn.net/2301_76154806/article/details/141440495


三、Idea 客户端连接 Docker


1. 安装插件并重启 Idea


在 IDEA 中安装 Docker 插件,并重启 IDE:

图片


2. 连接远程 Docker

  • • 编辑配置
  • • 填入远程 Docker 地址
  • • 连接成功后,会列出远程 Docker 容器和镜像
图片

成功连接后,可以看到远程 Docker 的容器和镜像:

图片

为了确保安全,需要进行认证配置,详情请参考:

https://blog.csdn.net/2301_76154806/article/details/141440495



四、使用 Idea 的 Docker 插件操作镜像和容器,并完成一键发布


1. Docker Image 方式


Docker Image 方式主要用于在 IDEA 中操作远程服务器上的 Docker 镜像和监控容器信息。


新建连接


在 IDEA 的设置中(File -> Settings  -> Docker),新建连接:

图片

图片

图片

使用服务器上的 Docker

图片

容器操作

在 IDEA 中可以进行容器的各种操作:

图片

镜像操作

拉取镜像:

图片

对已有镜像的操作:

图片

镜像拉取

注意,写 Docker 镜像地址时,需要在镜像名称后面指定版本号。如果不指定,IDEA 会默认使用 latest:

图片

图片

图片

图片

如遇到拉取超时的情况,可以配置国内镜像源,如阿里云的加速器:

图片

容器创建与运行

创建并运行 Docker 容器:

图片

图片

新的 IDEA 版本可能需要额外的参数配置:

图片

创建成功后,可以在服务器上查看新创建的容器:

图片

进行容器的重启、停止和删除等操作:

图片

总的来说,Docker Image 插件将服务器上的命令行操作可视化,简化了操作过程。


2. Dockerfile 方式


有关 Dockerfile 的介绍,请参考这篇文章:

https://ximeneschen.blog.csdn.net/article/details/125646230


准备测试项目

创建一个测试项目:

图片

@Controller
public
 class HelloController {
    @GetMapping("hello")

    @ResponseBody

    public
 String hello() {
        return
 "hello world" + new SimpleDateFormat(" [yyyy-mm-dd  HH:mm:ss]").format(new Date());
    }
}
server.port=8085

创建 Dockerfile

在工程的 pom.xml 文件所在目录下创建名为 Dockerfile 的文件,内容如下:

图片

# 基础镜像,使用 Alpine 操作系统,OpenJDK 8u201
FROM
 java:openjdk-8-jdk-alpine

# 作者

MAINTAINER
 Ximenes

# 系统编码

ENV
 LANG=C.UTF-8 LC_ALL=C.UTF-8

# 声明一个挂载点,容器内此路径会对应宿主机的某个文件夹

VOLUME
 /tmp

# 应用构建成功后的 jar 文件被复制到镜像内,名字也改成了 app.jar

ADD
 target/*.jar app.jar

# 设置 Alpine 系统时区

ENV
 TZ=Asia/Shanghai
RUN
 ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ

} > /etc/timezone

# 暴露端口

EXPOSE
 8085

# 启动容器时的进程

ENTRYPOINT
 [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

创建 Dockerfile 配置

如图所示,创建一个 Dockerfile 配置:

图片

根据下图中的说明进行设置,确保每个步骤都被执行:

图片

在"Run Maven Goal"中输入 clean package,表示每次构建镜像之前都会清理并重新编译构建:

运行结果

成功构建并部署镜像后,可以在 Docker 上运行容器:

图片

在浏览器访问地址 http://192.168.3.250/hello,可以看到应用在容器中正常运行:

图片

修改源代码并再次发布镜像即可看到修改后的结果。


3. Docker-Compose 方式


关于 Docker-Compose 的介绍,请参考这篇文章:

https://ximeneschen.blog.csdn.net/article/details/125651027

主要功能是:通过 docker-compose.yml 文件编排运行容器。



你还有什么想要补充的吗?


欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️

在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!

最后,再次推荐下我们的AI星

为了跟上AI时代我干了一件事儿,我创建了一个知识星球社群:ChartGPT与副业。想带着大家一起探索ChatGPT和新的AI时代


有很多小伙伴搞不定ChatGPT账号,于是我们决定,凡是这四天之内加入ChatPGT的小伙伴,我们直接送一个正常可用的永久ChatGPT独立账户。


不光是增长速度最快,我们的星球品质也绝对经得起考验,短短一个月时间,我们的课程团队发布了8个专栏、18个副业项目:


简单说下这个星球能给大家提供什么:


1、不断分享如何使用ChatGPT来完成各种任务,让你更高效地使用ChatGPT,以及副业思考、变现思路、创业案例、落地案例分享。

2、分享ChatGPT的使用方法、最新资讯、商业价值。

3、探讨未来关于ChatGPT的机遇,共同成长。

4、帮助大家解决ChatGPT遇到的问题。

5、提供一整年的售后服务,一起搞副业


星球福利:


1、加入星球4天后,就送ChatGPT独立账号。

2、邀请你加入ChatGPT会员交流群。

3、赠送一份完整的ChatGPT手册和66个ChatGPT副业赚钱手册。


其它福利还在筹划中... 不过,我给你大家保证,加入星球后,收获的价值会远远大于今天加入的门票费用 !


本星球第一期原价399,目前属于试运营,早鸟价169,每超过50人涨价10元,星球马上要来一波大的涨价,如果你还在犹豫,可能最后就要以更高价格加入了。。


早就是优势。建议大家尽早以便宜的价格加入!


最后,整理了500多套项目,赠送读者。扫码下方二维码,后台回复赚钱即可获取。


--END--

版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。 谢谢!

往期惊喜:

牛逼啊!接私活必备的 400 个开源项目!赶快收藏吧(附源码合集)!

何谓架构?

一个很酷的后台权限管理系统

一个很酷的博客系统

ChatGPT 4.0 国内直接用 !

推荐一套通用管理后台,快速开发、一键生成代码、多端自适应!
性能爆表:SpringBoot利用ThreadPoolTaskExecutor批量插入百万级数据实测!
换掉ES!Redis官方搜索引擎来了,效率大幅提升


扫码关注我们的Java架构师技术

带你全面深入Java

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/197834