当前位置: 首页 > news >正文

Docker远程管理和应用容器远程部署

前提

服务器已经装好docker-engine,怎么安装?关注公众号:庄智曰 ,我也不告诉您

阅读要求

对Docker和SpringBoot有基本的使用经验,同时对idea开发工具有使用经验

提醒: 基于安全的考虑,这个方式最好在开发环境使用

步骤

分成4大部分9个操作步骤

Docker 服务端部分

  1. 开放服务器docker engine远程管理端口
    主要有两种方式
  • 使用systemd 服务文件
  • 修改Docker服务配置文

Docker客户端部分

  1. 下载docker-cli、docker-compose 、docker-buildx
  2. 添加系统环境变量PATH路径

IDEA插件部分

  1. idea 插件下载,一般内置无需下载
  2. 插件配置idea tcp://192.168.31.22:2375
  3. 配置tool工具 即 docker-cli docker-compose工具,用于编译和部署 ,这部分为什么好多网上没说,奇怪

应用开发实战部分

  1. 建立SpringBoot应用
  2. 编写Dockerfile文件
  3. 编辑运行配置

详细步骤

开放服务器Docker Engine远程管理端口

两种方式

方式一 使用systemd服务文件

  • 修改docker配置文件docker.service
vim /usr/lib/systemd/system/docker.service
  • 找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
  • 重新加载systemd配置并重启Docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker

方式二 修改Docker服务配置文(没试过)

  • 编辑 /etc/docker/daemon.json 文件,添加或修改 hosts 参数,例如:
{"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
  • 重启 Docker 服务以应用更改:
 sudo systemctl restart docker

验证是否配置成功

随便浏览器访问一下网址
http://[docker-engine所在主机ip]:2375/version
http://[docker-engine所在主机ip]:2375/images/json
http://[docker-engine所在主机ip]:2375/containers/json

下载docker-cli、docker-compose 、docker-buildx

下载

就是下载docker客户端的一些命令工具:
自行根据操作系统,选择下载地址如下:
Mac CLI binaries are available at https://download.docker.com/mac/static/stable/
Windows CLI (and daemon) binaries at https://download.docker.com/win/
Linux CLI packages are available for each distro as docker-cli (deb and rpm) packages: https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/

如果网络问题无法下载,这里提供win版本 Docker-cli_20.10.10

系统变量设置

把下载的命令工具放到你自己的喜欢的一个位置,把改位置添加系统环境变量PATH路径

IDEA插件部分

idea 插件下载,一般内置无需下载

插件配置idea tcp://[docker-engine所在主机ip]:2375

在这里插入图片描述

配置tool工具 即 docker-cli docker-compose工具,用于编译和部署 ,这部分为什么好多网上没说,奇怪

在这里插入图片描述

通过以上步骤,理论下可以在IDEA Services面板,对远程Docker进行管理,自己随便点点

在这里插入图片描述

应用开发实战部分

现在我们开发一个Spring Boot应用,进行远程部署演示

建立SpringBoot应用

这里随便写一个应用,这里是以Spring-Security为例,因为有界面,您可以自行随便写个hello-world应用。

编写Dockerfile文件

然后在项目根目录下,建立如下内容的Dockerfile文件

在这里插入图片描述

FROM openjdk:17-jdkLABEL authors=ash
ENV MEM_MIN="-Xms1024m"
ENV MEM_MAX="-Xmx1024m"
ENV APP_NAME="ss-demo"
RUN mkdir -p /home/project/${APP_NAME}/log
COPY target/ss-demo-1.0.0.jar .
RUN mv ss-demo-1.0.0.jar ${APP_NAME}.jarEXPOSE 8080CMD java -Duser.timezone=Asia/Shanghai ${MEM_MIN} ${MEM_MAX} \
-XX:+PrintGCDetails \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-Xloggc:/home/project/${APP_NAME}/log/GC-${APP_NAME}.log \
-jar ${APP_NAME}.jar

编辑运行配置

maven 编译打包后,运行该Dockerfile文件,进行相应的配置

在这里插入图片描述

总结

总体而言,后续开发部署的效率有一个质的提升。希望对您有帮助。文中有不对的地方,欢迎评论区留言。或者关注我的公众号:庄智曰

参考文献

IDEA远程连接Docker,提高开发效率
IDE/docker-client 远程连接 Docker Engine(最大的好处是让 wsl+docker+虚拟机三者共存)
BuildKit和Buildx关系
How to download Docker CLI only for Windows 7
docker客户端相关命令下载地址


http://www.mrgr.cn/news/64838.html

相关文章:

  • IPC机制总结笔记
  • Spring Boot代理问题
  • 市象独家|百度副总裁陈一凡轮岗MEG;美团开放两项员工专属优惠 美团
  • git入门教程9:配置Git钩子
  • 优选算法精品课--滑动窗口算法(一)
  • Qt:信号和槽
  • 基于django+Vue的在线学习平台 (含源码数据库)
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-31
  • 提高交换网络可靠性之认识STP根桥与端口角色
  • CTF-pwn:libc2.27指针劫持[gyctf_2020_signin]
  • 多臂老虎机——入门强化学习
  • Qt 应用开发之 MVC 架构
  • Linux入门-基础指令和权限
  • ssm044基于java和mysql的多角色学生管理系统+jsp(论文+源码)_kaic
  • 有向无环图的拓扑排序——CSP-J1真题讲解
  • 高等数学习题练习-函数的连续性
  • 支持 Mermaid 语言预览,用通义灵码画流程图
  • ERC论文阅读(04)--DialogueCRN论文阅读笔记(2024-11-03)
  • 前端学习-盒子模型(十八)
  • 【Git】如何在 Git 中高效合并分支:完整指南
  • 【学术精选】SCI期刊《Electronics》特刊“New Challenges in Remote Sensing Image Processing“
  • 手把手教你用IntelliJ IDEA 操作 DM8
  • ! [remote rejected] master -> master (pre-receive hook declined)
  • YOLOv6-4.0部分代码阅读笔记-ema.py
  • 2024年一带一路金砖技能大赛之大数据容器云开发
  • Win10 连接到 Ubuntu 黑屏无法连接 使用Rustdesk显示 No Displays 没有显示器