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
shell 复制代码
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服务:

shell 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

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

  • 编辑 /etc/docker/daemon.json 文件,添加或修改 hosts 参数,例如:
json 复制代码
{
      "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
  • 重启 Docker 服务以应用更改:
shell 复制代码
 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文件

dockerfile 复制代码
FROM openjdk:17-jdk

LABEL 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}.jar

EXPOSE 8080

CMD 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客户端相关命令下载地址

相关推荐
THMAIL5 小时前
mac M芯片运行docker-desktop异常问题
macos·docker·容器
两点王爷6 小时前
IDEA中springboot项目中连接docker
spring boot·docker·intellij-idea
家庭云计算专家6 小时前
还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
服务器·人工智能·docker·容器·编辑器
孤的心了不冷9 小时前
【Docker】CentOS 8.2 安装Docker教程
linux·运维·docker·容器·eureka·centos
头疼的程序员10 小时前
docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
学习·docker·容器
IT小郭.10 小时前
使用 Docker Desktop 安装 Neo4j 知识图谱
windows·python·sql·docker·知识图谱·database·neo4j
淡水猫.10 小时前
hbit资产收集工具Docker(笔记版)
运维·docker·容器
旧故新长19 小时前
访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时
运维·docker·容器
white.tie19 小时前
Docker部署单节点Elasticsearch
elasticsearch·docker·jenkins
haven-8521 天前
win11安装Joplin Server私有化部署(docker)
运维·docker·容器