Jpom Jpom
🔖首页
  • 一键安装教程
  • Docker 容器安装教程
  • 离线安装教程
  • v2.9.X迁移到v2.10.X指南
  • v2.8.X迁移到v2.9.X指南
  • 数据库迁移到 mysql
  • 实践案例目录
  • 名词解释
  • 什么是 DSL
  • 权限说明
💡DSL说明
  • 加入社区讨论
  • 如何贡献
  • 贡献者们
🤝用户
  • 下载中心
  • Gitee (opens new window)
  • Github (opens new window)
🔖首页
  • 一键安装教程
  • Docker 容器安装教程
  • 离线安装教程
  • v2.9.X迁移到v2.10.X指南
  • v2.8.X迁移到v2.9.X指南
  • 数据库迁移到 mysql
  • 实践案例目录
  • 名词解释
  • 什么是 DSL
  • 权限说明
💡DSL说明
  • 加入社区讨论
  • 如何贡献
  • 贡献者们
🤝用户
  • 下载中心
  • Gitee (opens new window)
  • Github (opens new window)
❤️成为赞助商
  • 解决方案

    • 如何使用 Jpom 的在线构建为 Jpom 发版
    • 万能的 DSL 项目模板(Java)
    • 基于 Jpom 搭建应用部署系统
    • 一键安装实践
    • Docker 容器安装实践
    • 离线安装实践
    • 自定义第三方通知
  • 在线构建

    • 本地构建 + SSH 发布 java 项目
    • 本地构建 + 项目发布 node 项目
    • 本地构建 + SSH 发布 node 项目
    • 本地构建 + 自定义管理 python 项目
    • 容器构建 + 项目发布 java 项目
    • Gitee 提交代码后自动执行构建
    • 使用 gradle 本地构建打包项目并发布到节点
    • GitLab 提交代码后自动执行构建
    • 通过私人令牌导入仓库
  • docker

    • 管理 docker
      • 前言
      • 需要准备的环境
      • 安装服务端
        • 初始化服务端
        • 添加超级管理账号
        • 开启账号 MFA
      • 安装 docker
        • 状态管理
        • Docker TLS 证书 (非必须)
      • 配置 docker
        • 查看 docker.service 路径
        • 配置 tcp + tls (非必须)
        • 重启 docker
      • 添加 docker
      • Jpom 中使用
    • 在线构建 docker 镜像
    • 在线构建 docker 镜像并推送至远程仓库
    • docker 安装 redis 流程
  • 节点管理

    • 管理编译安装的 nginx
  • 项目管理

    • 自定义管理 java 项目
    • DSL项目接口探活
    • 在 Jpom 中如何使用 DSL 项目来管理 TOMCAT
    • 在 Jpom 中如何使用 DSL 项目来管理 elasticsearch
  • 项目监控

    • 监控项目 + 邮件报警通知
    • DSL 项目接口探活监控报警
  • 在线脚本

    • 使用节点脚本定时备份 docker 中的 mysql 数据库
  • SSH管理

    • 在线管理 SSH 终端以及上传文件(SFTP)和执行命令历史
  • 日常管理

    • 如何开启 h2-console web 访问功能
  • 实践案例
  • docker
bwcx_jzy
2022-06-11
目录

管理 docker

# 前言

本文主要介绍: 如何从零开始使用 Jpom 中的 Docker 管理

文中使用到的依赖环境版本仅供参考,实际使用中请根据业务情况来安装对应的版本

注意:本文采用一键安装同时基于 2.8.8 版本讲解,系统为 ubuntu

# 需要准备的环境

  1. Jpom 服务端(安装 jpom 需要 java 环境)
  2. 一个安装了 docker 的服务器(可以和安装 Jpom 服务端在同一个服务器)

# 安装服务端

# 提前创建好文件夹 并且切换到对应到文件夹执行命令
mkdir -p /home/jpom/server/
cd /home/jpom/server/
apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Server jdk
1
2
3
4

install1

install2

# 初始化服务端

# 添加超级管理账号

添加一个超级管理员账号,请妥善保管此账号同时请设置安全度较强的密码

install1

# 开启账号 MFA

为了系统安全,强烈建议超级管理员账号开启 MFA 两步验证

install2

# 安装 docker

# 这里使用了阿里云镜像,可以更新自己业务选择
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
1
2

# 状态管理

# 查看状态
systemctl status docker
# 停止
systemctl stop docker
# 启动
systemctl start docker
# 重启
systemctl daemon-reload && systemctl restart docker
1
2
3
4
5
6
7
8

# Docker TLS 证书 (非必须)

如果服务端所在端服务器已经安装 docker 在 2.8.15+ 版本会自动加载本地 docker 到 Jpom 中,这样就可以不用修改任何配置即可使用 jpom 管理本地 docker。即可忽略该步骤

安全提醒

如果 docker 服务全部在内网环境使用可以不配置 TLS 证书,忽略该步骤。如果端口暴露到公网很容易出现被攻击到情况请一定慎重开启端口访问限制

安全提醒

Jpom 使用 docker http 接口是实现和 docker 通讯和管理,但是默认没有开启任何认证这样使得 docker 极不安全,如果端口暴露到公网还容易出现挖矿情况

所以这里 我们强烈建议您使用 TLS 证书来连接 docker 提升安全性

这里提供一个快速生成证书到脚本示例:(使用中请一定修改脚本内的 IP 或者可能无法使用的情况奥)

#!/bin/bash
#
# -------------------------------------------------------------
# 自动创建 Docker TLS 证书
# wget https://gitee.com/dromara/Jpom/raw/master/script/docker-tls.sh
# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# systemctl daemon-reload && systemctl restart docker
# -------------------------------------------------------------
# 以下是配置信息
# --[BEGIN]------------------------------
NOW_PATH=$(
	cd "$(dirname "$0")" || exit
	pwd
)"/"
echo "当前目录:${NOW_PATH} 证书文件将保存在此文件夹下"
read -p "请输入证书使用的 IP 地址或者 HOST: " HOST
#
echo "您输入的是:${HOST} 证书只能在这个 IP 或者 HOST 下使用,证书密码和输入的一致"
# --[INIT PARAMETER]------------------------------
PASSWORD="$HOST"
COUNTRY="CN"
STATE="$HOST"
CITY="$HOST"
ORGANIZATION="$HOST"
ORGANIZATIONAL_UNIT="Dev"
COMMON_NAME="$HOST"
EMAIL="$HOST@docker-tls.com"
# --[END]--
# Generate CA key
openssl genrsa -aes256 -passout "pass:$PASSWORD" -out "ca-key.pem" 4096
# Generate CA
openssl req -new -x509 -days 365 -key "ca-key.pem" -sha256 -out "ca.pem" -passin "pass:$PASSWORD" -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$COMMON_NAME/emailAddress=$EMAIL"
# Generate Server key
openssl genrsa -out "server-key.pem" 4096
# Generate Server Certs.
openssl req -subj "/CN=$COMMON_NAME" -sha256 -new -key "server-key.pem" -out server.csr
rm -f extfile.cnf
echo "subjectAltName = DNS.1:$HOST,IP.1:127.0.0.1,IP.2:$HOST" >>extfile.cnf
echo "extendedKeyUsage = serverAuth" >>extfile.cnf
openssl x509 -req -days 365 -sha256 -in server.csr -passin "pass:$PASSWORD" -CA "ca.pem" -CAkey "ca-key.pem" -CAcreateserial -out "server-cert.pem" -extfile extfile.cnf
# Generate Client Certs.
rm -f extfile.cnf
openssl genrsa -out "key.pem" 4096
openssl req -subj '/CN=client' -new -key "key.pem" -out client.csr
echo "extendedKeyUsage = clientAuth" >>extfile.cnf
openssl x509 -req -days 365 -sha256 -in client.csr -passin "pass:$PASSWORD" -CA "ca.pem" -CAkey "ca-key.pem" -CAcreateserial -out "cert.pem" -extfile extfile.cnf
rm -f client.csr server.csr ca.srl extfile.cnf

# check
if [ -f "${NOW_PATH}key.pem" -a -f "${NOW_PATH}ca.pem" -a -f "${NOW_PATH}ca-key.pem" -a -f "${NOW_PATH}server-cert.pem" -a -f "${NOW_PATH}server-key.pem" ]; then
	echo "证书生成完成"
	echo "客户端使用文件:key.pem ca.pem cert.pem"
	echo "Docker 端使用文件:ca.pem server-cert.pem server-key.pem"
	echo "Docker 推荐配置内容:-H tcp://0.0.0.0:2375 --tlsverify --tlscacert=${NOW_PATH}ca.pem --tlscert=${NOW_PATH}server-cert.pem --tlskey=${NOW_PATH}server-key.pem"
else
	echo "证书生成不完成,请检查配置和根据错误日志排查"
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

同时将生成到证书下载到本地 保存使用

证书示例:

install1

# 配置 docker

# 查看 docker.service 路径

systemctl status docker

install1

# 配置 tcp + tls (非必须)

如果服务端所在端服务器已经安装 docker 在 2.8.15+ 版本会自动加载本地 docker 到 Jpom 中,这样就可以不用修改任何配置即可使用 jpom 管理本地 docker。即可忽略该步骤

vim /lib/systemd/system/docker.service

install1

ExecStart 需要添加内容

--tlsverify --tlscacert=/home/docker/tls-ca/ca.pem --tlscert=/home/docker/tls-ca/server-cert.pem --tlskey=/home/docker/tls-ca/server-key.pem -H tcp://0.0.0.0:2375

# 配置示例
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --tlsverify --tlscacert=/home/docker/tls-ca/ca.pem --tlscert=/home/docker/tls-ca/server-cert.pem --tlskey=/home/docker/tls-ca/server-key.pem -H tcp://0.0.0.0:2375
1
2

如果不开启 tls 验证配置示例:

# 配置示例
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
1
2

部分情况需要删除:-H fd://

install1

# 重启 docker

配置完成后需要重启 才能生效

systemctl daemon-reload && systemctl restart docker
1

# 添加 docker

install1

注意这里 host 为:tcp://127.0.0.1:2375 这里因为连接本地 docker 所有使用 127.0.0.1 实际中请更换

证书为压缩文件,压缩文件需要包含生成证书文件:key.pem ca.pem cert.pem

install1

install1

# Jpom 中使用

install1

docker 相关更多正在努力开发中💪 敬请期待

帮助我们改善此文档 (opens new window)
#docker
上次更新: 2023/01/05, 08:49:43
通过私人令牌导入仓库
在线构建 docker 镜像

← 通过私人令牌导入仓库 在线构建 docker 镜像→

最近更新
01
带您了解能替代 Jenkins 的国产【项目运维】开源软件
03-20
02
成为赞助商
03-06
03
在 Jpom 中如何使用 DSL 项目来管理 elasticsearch
02-24
更多文章>
Theme by Vdoing | Copyright © 2017-2023 MIT License  京ICP备17044819号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×