Py学习  »  docker

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

Java架构师技术 • 5 天前 • 48 次点击  
以下文章来源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