首页
留言
导航
统计
Search
1
追番推荐!免费看动漫的网站 - 支持在线观看和磁力下载
2,508 阅读
2
推荐31个docker应用,每一个都很实用
1,311 阅读
3
PVE自动启动 虚拟机 | 容器 顺序设置及参数说明
931 阅读
4
一条命令,永久激活!Office 2024!
618 阅读
5
优选 Cloudflare 官方 / 中转 IP
489 阅读
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
登录
Search
标签搜索
Java
小程序
Redis
SpringBoot
docker
Typecho
Cloudflare
docker部署
虚拟机
WordPress
群晖
uni-app
CentOS
Vue
Java类库
Linux命令
防火墙配置
Mysql
脚本
Nginx
微醺
累计撰写
264
篇文章
累计收到
11
条评论
首页
栏目
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
页面
留言
导航
统计
搜索到
5
篇与
的结果
2026-01-22
Docker 一键部署 WireGuard VPN,支持可视化管理与监控
🌟 引言随着远程办公、跨地域访问与隐私保护需求的不断增长,VPN(虚拟专用网络) 正在成为个人与企业必备的基础设施之一。而传统的 WireGuard VPN 配置流程对于普通用户而言存在一定门槛,需要大量命令行操作与手动配置。WG-Easy 正是在这种背景下应运而生的高效解决方案,它将 WireGuard 的强大性能与可视化管理相结合,大大降低部署和维护难度。💡 项目简介WG-Easy(WireGuard Easy) 是一个将 WireGuard VPN 核心服务与 Web 可视化管理界面深度集成的开源项目。它通过直观的浏览器操作界面,让用户无需掌握复杂的命令行知识,即可快速完成 VPN 的部署、配置与监控。设计理念:📦 开箱即用:基于 Docker 容器化部署,一条命令即可启动🖱️ 可视化优先:所有操作均可在 Web 界面完成,告别配置文件🚀 性能卓越:基于 WireGuard 协议,提供媲美直连的网络速度🔒 安全可靠:采用现代密码学套件,代码简洁易审计🎯 核心特性WireGuard Easy 提供了一套完整的 VPN 管理功能,主要特性包括:🧩 一体化架构:将 WireGuard 核心 VPN 与 Web 管理界面整合在一起。🚀 快速部署:基于 Docker 容器化,一条命令即可启动完整 VPN 服务。🖥️ 可视化管理面板:客户端创建、编辑、禁用、删除全部图形化完成。📱 二维码一键接入:自动生成配置二维码,便于移动设备一键连接。🔗 一次性分享链接:生成临时配置链接,分享后自动失效,提升安全性📊 实时连接与流量监控:显示每个客户端的在线状态、上传 / 下载流量。🌗 多语言 & 深浅色模式:自动适配浏览器语言,支持暗黑模式。📈Prometheus 监控支持:原生支持 Prometheus,便于接入 Grafana 统一监控体系。🔑 双因素认证(2FA):支持 TOTP 双因素认证,提升账户安全。🔐 继承 WireGuard 的安全模型:公钥认证、现代加密算法,无密码、无证书链复杂度。ℹ️ 环境信息🔍 WireGuard 内核支持检查在部署前,请确认服务器内核已支持 WireGuard:uname -r加载 WireGuard 内核模块:modprobe wireguard验证是否成功:lsmod | grep wireguard说明:Linux Kernel ≥ 5.6 已内置 WireGuardUbuntu 20.04+ / 22.04 LTS 默认支持若加载失败,请检查内核版本或云厂商是否裁剪模块基础环境云服务器(VPS / 轻量云 / 物理机)操作系统:Ubuntu 22.04 LTS(推荐)具有域名 或 公网 IP已安装 Docker / Docker Compose网络与安全组要求UDP 51820(WireGuard 通信端口)TCP 51821(wg-easy Web 管理界面)出口网络允许访问公网(用于 VPN 转发)🔥 配置防火墙规则# Ubuntu/Debian (使用 ufw) sudo ufw allow 51820/udp comment 'WireGuard VPN' sudo ufw allow 51821/tcp comment 'WG-Easy Web UI'⚠️ 若云厂商启用防火墙 / 安全组,务必同步放行端口。📦 部署教程🚀 方式一:Docker 命令行部署(快速上手)1️⃣ 创建网络docker network create \ -d bridge --ipv6 \ --subnet 10.42.42.0/24 \ --subnet fdcc:ad94:bacf:61a3::/64 \ wg2️⃣ 启动容器docker run -d \ --net wg \ -e INSECURE=true \ --name wg-easy \ --ip6 fdcc:ad94:bacf:61a3::2a \ --ip 10.42.42.42 \ -v ~/.wg-easy:/etc/wireguard \ -v /lib/modules:/lib/modules:ro \ -p 51820:51820/udp \ -p 51821:51821/tcp \ --cap-add NET_ADMIN \ --cap-add SYS_MODULE \ --sysctl net.ipv4.ip_forward=1 \ --sysctl net.ipv4.conf.all.src_valid_mark=1 \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --sysctl net.ipv6.conf.all.forwarding=1 \ --sysctl net.ipv6.conf.default.forwarding=1 \ --restart unless-stopped \ ghcr.io/wg-easy/wg-easy:153️⃣ 访问 Web 界面访问浏览器 http://服务器IP:51821 即可进入界面。🐳 方式二:Docker Compose 部署(推荐)1️⃣ 安装 Docker Compose# Ubuntu/Debian # sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo apt install -y docker-compose-plugin2️⃣ 创建配置目录mkdir ~/wg-easy/ && mkdir ~/wg-easy/3️⃣ 下载 Docker Compose 文件sudo curl -o /etc/docker/containers/wg-easy/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml4️⃣ 修改配置编辑docker-compose.yml文件并取消environment注释INSECURE设置INSECURE为true允许通过非安全http连接访问 Web UI。完整 docker-compose.yml 文件如下:volumes: etc_wireguard: services: wg-easy: volumes: etc_wireguard: services: wg-easy: environment: - INSECURE=true image: ghcr.nju.edu.cn/wg-easy/wg-easy:15 container_name: wg-easy networks: wg: ipv4_address: 10.42.42.42 ipv6_address: fdcc:ad94:bacf:61a3::2a volumes: - etc_wireguard:/etc/wireguard - /lib/modules:/lib/modules:ro ports: - "51820:51820/udp" - "51821:51821/tcp" restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1 - net.ipv6.conf.all.disable_ipv6=0 - net.ipv6.conf.all.forwarding=1 - net.ipv6.conf.default.forwarding=1 networks: wg: driver: bridge enable_ipv6: true ipam: driver: default config: - subnet: 10.42.42.0/24 - subnet: fdcc:ad94:bacf:61a3::/645️⃣ 启动服务# 启动容器 docker compose up -d # 查看日志 docker compose logs -f wg-easy # 查看容器状态 docker compose ps访问浏览器 http://服务器IP:51821 即可进入界面。⚙️ 初始配置🔐 创建管理员账号📱 创建客户端配置🔀 配置路由规则(重要)修改客户端配置,添加允许的 IP ,决定哪些流量走 VPN:# 全局代理(所有流量走 VPN) 0.0.0.0/0, ::/0 # 仅访问特定网段(分流模式,推荐) 10.42.42.0/24 # WireGuard 内网 10.7.0.0/22 # 服务器内网 172.17.0.0/24 # docker 192.168.1.0/24 # 家庭网络💡 分流模式的优势:✅ 仅内网流量走 VPN,外网直连✅ 节省 VPN 服务器带宽✅ 访问国内网站速度更快保存后即可通过扫描二维码或下载配置文件连接📊 启用 Prometheus 监控1️⃣ 在 WG-Easy 中启用进入 管理面板 > 通用设置 > Prometheus,启用监控并设置密码。 2️⃣ 配置 Prometheus在 Prometheus 配置文件中添加:以下是一个示例:scrape_configs: - job_name: 'wg-easy' scrape_interval: 30s metrics_path: /metrics/prometheus static_configs: - targets: - '服务器IP:51821' authorization: type: Bearer credentials: '上一步设置的密码'导入 Grafana 仪表盘Grafana Dashboard ID:21733🖥️ 项目界面预览📊 仪表盘💻 客户端连接Windows客户端 iPhone客户端 🎯 适用场景WG-Easy 适用于多种实际应用场景,从个人隐私保护到企业级远程访问,都能提供高效的解决方案:🧑💻 远程办公 / 内网访问安全访问公司内网服务(Git、Jenkins、数据库、K8s 等)。🌍 跨地域统一出口网络多终端统一出口 IP,便于访问特定区域网络资源。🏡 家庭网络远程访问安全访问家中 NAS、路由器、智能家居设备、监控摄像头、内网服务。👥 小型团队 VPN 管理无需专业网络运维即可维护团队 VPN。🧪 测试 / 沙箱 / 运维环境快速搭建临时 VPN,随用随删,配置可追溯。🔗 相关链接📖 官方文档官方网站:https://wg-easy.github.io/wg-easy/latest/GitHub 仓库:https://github.com/wg-easy/wg-easy快速开始:https://wg-easy.github.io/wg-easy/latest/getting-started/部署示例:https://wg-easy.github.io/wg-easy/latest/examples/tutorials/basic-installation/🔧 高级配置Caddy 反向代理:https://wg-easy.github.io/wg-easy/latest/examples/tutorials/caddy/Traefik 反向代理:https://wg-easy.github.io/wg-easy/latest/examples/tutorials/traefik/可选配置项:https://wg-easy.github.io/wg-easy/latest/advanced/config/optional-config/API 接口文档:https://wg-easy.github.io/wg-easy/latest/advanced/api/📱 客户端下载平台下载地址Windowshttps://download.wireguard.com/windows-client/🍎 macOShttps://apps.apple.com/app/wireguard/id1451685025🤖 Androidhttps://play.google.com/store/apps/details?id=com.wireguard.android📱 iOShttps://apps.apple.com/app/wireguard/id1441195209🐧 Linuxsudo apt install wireguard 或各发行版包管理器💬 社区支持问题反馈:https://github.com/wg-easy/wg-easy/issues讨论区:https://github.com/wg-easy/wg-easy/discussions贡献指南:https://wg-easy.github.io/wg-easy/latest/contributing/general/WireGuard vs IPsec vs OpenVPN 核心对比选择 WireGuard,如果你需要:✅ 极致性能:低延迟、高吞吐量的网络体验✅ 移动场景:频繁切换网络(4G/5G ↔ WiFi)✅ 简单部署:快速上手,无需复杂配置✅ 物联网/嵌入式:资源受限的设备🎯 适用场景:个人 VPN、移动办公、物联网、云原生环境选择 IPsec,如果你需要:✅ 企业合规:满足 FIPS、CC 等安全认证要求✅ 站点互联:分支机构与总部的网络互联✅ 原生集成:操作系统内置支持,无需额外客户端✅ 传统设备:需要与老旧设备兼容🎯 适用场景:企业站点互联、合规要求高的场景、金融行业选择 OpenVPN,如果你需要:✅ 最大兼容性:严格的防火墙环境(可伪装 HTTPS)✅ 灵活认证:用户名密码、双因素认证等✅ 成熟生态:丰富的第三方工具和管理系统✅ 细粒度控制:复杂的访问控制和策略路由🎯 适用场景:企业远程访问、严格防火墙环境、需要灵活认证的场景🎉 总结WG-Easy 以其实用性和易用性,将传统 WireGuard VPN 的部署门槛大幅降低,使得 VPN 架构不仅对开发者友好,同时对非专业用户亦极易上手。无论是个人搭建,还是企业内网 VPN 管理,WG-Easy 都能提供简洁、高效、安全的解决方案,是值得推荐的开源 VPN 工具。
2026年01月22日
3 阅读
0 评论
0 点赞
2025-05-16
远程桌面控制软件-rustdesk-附docker部署脚本
客户端程序 1.4.0 版本官网地址:https://github.com/rustdesk/rustdesk/releases/tag/1.4.0{cloud title="rustdesk-1.4.0" type="lz" url="https://wwtt.lanzouy.com/b02djvq20f" password="9dwl"/}自建中继服务器Docker脚本试过很多远程软件,最后还是觉得 rustdesk 最适合,如果家里有nas,那就更完美了,可以自建中继服务器,不过官方的不带账号功能,需要配合rustdesk-api才能实现账号管理,有大神整合了API功能,以下yaml文件直接实现,IPV6也是可以的,要双方都有IPV6,我域名绑定的IP6地址,没有卡顿,画质清晰。networks: rustdesk-net: external: false services: rustdesk: ports: - 21114:21114 - 21115:21115 - 21116:21116 - 21116:21116/udp - 21117:21117 - 21118:21118 - 21119:21119 image: lejianwen/rustdesk-server-s6:latest environment: - RELAY=<server[:21117]> - ENCRYPTED_ONLY=1 - MUST_LOGIN=Y #是否必须登录 - TZ=Asia/Shanghai - RUSTDESK_API_RUSTDESK_ID_SERVER=<server[:21116]> #21116 - RUSTDESK_API_RUSTDESK_RELAY_SERVER=<server[:21117]> #21117 - RUSTDESK_API_RUSTDESK_API_SERVER=http://<server[:21114]> #21114 - RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub - RUSTDESK_API_JWT_KEY=xxxxxx # jwt key volumes: - /data/rustdesk/server:/data #将server的key挂载出来 - /data/rustdesk/api:/app/data #将数据库挂载 networks: - rustdesk-net restart: unless-stoppedkey 在 Docker 运行后在 日志 中查看将自己的IP或者域名替换以上<>,如: - RELAY=<server[:21117]> 替换成 - RELAY=8.8.8.8:21117 或者 - RELAY=http://baidu.com:21117客户端设置客户端只需要配置网络,有4个设置项,其中3个必填,如果需要登录就需要设置API服务器ID服务器:域名或者IP:21116中继服务器:域名或者IP:21117API服务器:http://域名orIP:21114key,从日志中查看实测公网IPV6绑定域名,只要双方都有IPV6也能流畅访问。
2025年05月16日
84 阅读
0 评论
0 点赞
2025-03-06
推荐31个docker应用,每一个都很实用
推荐的这些 docker 应用都是我自己常用的,同时也有自己的一些偏好在里面,每个人的需求不同,对应用的要求也不同。还有很多优秀的 docker 应用我没有用过,所有没有推荐的并不代表不优秀。所有的 docker 应用布署都比较简单,只有少量的会需要在数据库和权限的配置上研究一下。排名不分先后Memos 笔记记事功能强大的笔记应用,支持多用户,笔记支持私有,工作区和公开https://github.com/usememos/memosWbo-Boards 共享白板非常好的白板应用,支持多人共享,一人在白板上画图写字,其他在线用户可以实时看到https://github.com/lovasoa/whitebophirVaultWard 密码管理BitWard的轻量版,密码管理,可以在电脑和手机上自动填写用户和密码,实现自动登陆注意:此应用不支持IP:Port访问,安全原因,只支持https连接https://github.com/dani-garcia/vaultwardenMoments 极简朋友圈微信朋友圈风格,支持多用户,可以发贴和记事,比起各博客应用更简单易用https://github.com/kingwrcy/momentsGhost 博客本人最喜欢的博客应用,轻松发博,只是对中文版支持不是太好https://github.com/TryGhost/GhostTypecho 博客简单的博客,发博时稍烦所,不如Ghost强大,简单易用不如极简朋友圈,看个人的需求https://github.com/typecho/typechoEasyImage 图床本人自用的主力图床https://hub.docker.com/r/ddsderek/easyimageLsky-pro 图床图床不多说了,感觉功能易用性和EasyImage差不多https://hub.docker.com/r/dko0/lsky-pro/Lychee 相册漂亮且功能强大的相册,支持多用户和相册分享注意:如果不能上传图片,检查一下目录的权限https://github.com/LycheeOrg/LycheeFileBrowser 网盘简单易用,适合个人自用,当然也支持多用户和文件分享https://github.com/filebrowser/filebrowserCloudreve 网盘强大的网盘,虽不如Nextcloud强大,但是速度更快更好用,支持多用户和文件分享https://github.com/cloudreve/CloudreveFileCodeBox 文件文字加密分享简单易用,支持访客分享,让小白分享文件更简单更安全用户通过简单的方式分享文本和文件,接收者只需要一个提取码就可以取得文件,就像从快递柜取出快递一样简单https://github.com/vastsa/FileCodeBoxJellyfin 视频流媒体服务器不用多说了,和Emby一样的功能,但这个是开源免费的https://github.com/jellyfin/jellyfinAllinOne IPtv可以在线看央视和其他地方卫视。https://www.nodeseek.com/post-176265-1Navidrome 音乐服务器音乐收藏和流媒体服务器,里面没有音乐,要自己上传音乐文件https://github.com/navidrome/navidromeMeTube 视频网站下载器可以从YouTube下载视频,或直接下载音频,支持视频列表下载。同时还支持从其他上百个视频网站下载https://github.com/alexta69/metubeqBittorrent 下载工具大家都应该用过吧https://github.com/qbittorrent/qBittorrentDosGame DOS老游戏Dos游戏中文版,可以用浏览器在线玩dos游戏,包含40几个经典游戏https://hub.docker.com/r/oldiy/dosgame-web-docker/LinkAce 书签管理网址网页收藏管理,支持多用户,书签支持私有,内部和公开https://github.com/Kovah/LinkAceOneNav 书签管理强大且简洁高效的浏览器书签管理器,个人单用户适用https://github.com/helloxz/onenavSlash 短域名跳转如果自己拥有短域名,可以设置短域名跳转服务注意:开源版有些限制,码佬可以自己改一下https://github.com/yourselfhosted/slashActualBudet 记账应用功能不错,但本人只用过一些简单功能,好像暂时没有中文版本https://github.com/actualbudget/actual-serverTimeTagger 时间记录时间记录打卡,很适合小朋友练琴和学习的时间记录,支持标签https://github.com/almarklein/timetaggerStirling-PDF PDF编辑转换PDF编辑转换工具,功能超级强大,再也不用花钱买PDF软件了https://github.com/Stirling-Tools/Stirling-PDFit-tools IT常用工具各种IT常用工具。https://github.com/CorentinTh/it-toolsSpeedTest 网速测试网速测试应用,简单易用,也可以用作docker测试应用https://github.com/librespeed/speedtestUptime-Kuma 监测工具实时监测工具,可以对IP,网站,DNS等服务进行实时监测,并可发送警报信息https://github.com/louislam/uptime-kumaSmokeping 网络延迟监测自定义IP点,监测网络延迟,并可以显示延迟图https://github.com/linuxserver/docker-smokepingServerStatus 探针本人的主力探针,简单易用,支持一键脚本布署https://github.com/cppla/ServerStatusMyNodeQuery 探针本人的备用探针,简单易用,支持一键脚本布署https://hub.docker.com/r/jaydenlee2019/mynodequery/Adminer 数据库管理工具强大易用的数据库管理工具,支持MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, MongoDB等各种数据库。本人原来一直用phpmyadmin管理MySQL数据库,现在已改用Adminer了。https://github.com/vrana/adminer
2025年03月06日
1,311 阅读
0 评论
0 点赞
2023-03-04
Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路
本文章实现最简单全面的 Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。环境:Centos7+Git(Gitee)简述实现步骤:在 docker 安装 jenkins,配置 jenkins 基本信息,利用 Dockerfile 和 shell 脚本实现项目自动拉取打包并运行。安装 dockerdocker 安装社区版本 CE确保 yum 包更新到最新。yum update卸载旧版本(如果安装过旧版本的话)yum remove docker docker-common docker-selinux docker-engine安装需要的软件包yum install -y yum-utils device-mapper-persistent-data lvm2设置 yum 源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo安装 dockeryum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0 yum install <自己的版本> # 例如:sudo yum install docker-ce-17.12.0.ce启动和开机启动systemctl start docker systemctl enable docker验证安装是否成功docker version安装 JenkinsJenkins 中文官网安装 Jenkinsdocker 安装一切都是那么简单,注意检查 8080 是否已经占用!如果占用修改端口docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean如果没改端口号的话安装完成后访问地址=> http://{部署Jenkins所在服务IP}:8080此处会有几分钟的等待时间。初始化 Jenkins详情见官网教程=> https://www.jenkins.io解锁 Jenkins进入 Jenkins 容器:docker exec -it {Jenkins容器名} bash # 例如 `docker exec -it jenkins bash`查看密码:cat /var/lib/jenkins/secrets/initialAdminPassword复制密码到输入框里面安装插件选择第一个:安装推荐的插件创建管理员用户此账户一定要记住哦系统配置安装需要插件进入【首页】–【系统管理】–【插件管理】–【可选插件】搜索以下需要安装的插件,点击安装即可。安装 Maven Integration安装 Publish Over SSH(如果不需要远程推送,不用安装)如果使用 Gitee 码云,安装插件 Gitee(Git 自带不用安装)配置 Maven进入【首页】–【系统管理】–【全局配置】,拉到最下面 maven–maven 安装创建任务新建任务点击【新建任务】,输入任务名称,点击构建一个自由风格的软件项目源码管理点击【源码管理】–【Git】,输入仓库地址,添加凭证,选择好凭证即可。构建触发器点击【构建触发器】–【构建】–【增加构建步骤】–【调用顶层Maven目标】–【填写配置】–【保存】此处命令只是 install,看是否能生成 jar 包clean install -Dmaven.test.skip=true保存点击【保存】按钮即可测试该功能测试是否能正常打包构建查看日志点击正在构建的任务,或者点击任务名称,进入详情页面,查看控制台输出,看是否能成功打成 jar 包。该处日志第一次可能下载依赖 jar 包失败,再次点击构建即可成功。查看项目位置cd /var/jenkins_home/workspacell 命令即可查看是否存在运行项目因为我们项目和 jenkins 在同一台服务器,所以我们用 shell 脚本运行项目,原理既是通过 dockerfile 打包镜像,然后 docker 运行即可。Dockerfile在 springboot 项目根目录新建一个名为 Dockerfile 的文件,注意没有后缀名,其内容如下:(大致就是使用 jdk8,把 jar 包添加到 docker 然后运行 prd 配置文件)FROM jdk:8 VOLUME /tmp ADD target/zx-order-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8888 ENTRYPOINT ["Bash","-DBash.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.profiles.active=prd"]修改 jenkins 任务配置配置如下:-t:指定新镜像名.:表示Dockfile在当前路径cd /var/jenkins_home/workspace/zx-order-api docker stop zx-order || true docker rm zx-order || true docker rmi zx-order || true docker build -t zx-order . docker run -d -p 8888:8888 --name zx-order zx-order:latest备注:我上图用了 docker logs -f 是为了方便看日志,真实不要用,因为会一直等待日志,构建任务会失败加|| true 是如果命令执行失败也会继续实行,为了防止第一次没有该镜像报错保存点击 保存 即可构建查看 jenkins 控制台输出,输出如下,证明成功!验证docker ps 查看是否有自己的容器 docker logs 自己的容器名 查看日志是否正确浏览器访问项目试一试
2023年03月04日
78 阅读
0 评论
0 点赞
2023-02-16
Docker部署 Mysql、redis、Rabbitmq、Vue、Java 项目
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。本文主要讲解如何在Linux环境下使用 Docker 部署前后端分离项目,其中涉及到使用 Docker 安装本人项目相关的一些环境 ,例如mysql、rabbitmq、redis,基于CenterOS7.0。Docker 环境安装1.安装 Docker 客户端# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装 Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start2.配置镜像加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://sq2b0kv9.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker安装 PortainerPortainer 是一个轻量级 Web 端的 Docker 管理 UI,Portainer 够轻松地管理不同的 Docker 环境(Docker 主机或集群)。Portainer 的部署和使用十分简单。Portainer 可以部署为 Linux 容器或 Windows 本机容器,也支持其他平台。Portainer 允许您管理所有 Docker 资源(容器、映像、卷、网络等)!它与独立的 Docker 引擎和 Docker 集群模式兼容。1.安装# 拉取官方镜像 docker pull portainer/portainer # 运行镜像到容器 docker run -d -p 9000:9000\ --restart=always\ -v /var/run/docker.sock:/var/run/docker.sock\ -m 20M --oom-kill-disable --memory-swap=-1\ --name portainer\ portainer/portainer2.访问页面访问地址:http://localhost:9000,第一次打开需要设置用户名、密码,docker 模式我一般选择 Local 本机模式。通过此工具我们可以更加简便的对镜像和容器进行操作和管理。登录页 面板页 安装 mysql# docker search mysql 可通过此命令查看可用版本 # 拉取mysql镜像,默认会拉取最新版本,我这里加上版本号 docker pull mysql:8.0.0 # 查看镜像是否拉取成功 docker images # 在/home/docker/mysql目录下创建mysql挂载目录 mkdir {data,logs,conf} # 运行容器 docker run -d -p 3306:3306 -v /home/docker/mysql/my.cnf:/etc/mysql/conf.d/mysqld.cnf -v /home/docker/mysql/data:/var/lib/mysql -v /home/docker/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=12345 --name mysql_test mysql:8.0.0说明:--name:容器名-e:配置信息,此处配置 mysql 的 root 用户登陆密码-d:后台运行容器,保证在退出终端后容器继续运行-p:端口映射,此处映射 主机 3306 端口 到 容器的 3306 端口-v:挂载目录此处需要注意不要直接挂载容器中的 mysql 配置文件目录,可能会将容器内的配置文件目录清空。个人建议将容器中的 my.cnf 文件复制出来进行选择性的修改,再挂载 mysql.cnf 文件即可。docker cp :用于容器与主机之间的数据拷贝。# 语法 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- # 实例 docker cp 96f7f14e99ab:/etc/mysql/conf.d/mysqld.cnf /home/docker/mysql/my.cnf安装 redis因为 redis 默认配置只能够本地连接,不能进行远程访问,使用 Redis 客户端工具连接都会报错,因此需要手动挂载 redis 配置文件。# /home/docker/redis目录下新增挂载文件夹 mkdir {data,conf} # 下载最新版本的Redis镜像 docker pull redis # 新增redis配置文件 cd /home/docker/redis/conf touch redis.conf vim redis.conf添加以下内容#bind 127.0.0.1 protected-mode no appendonly yes requirepass 123456说明:bind 127.0.0.1 ,注释掉这部分,这是限制 redis 只能本地访问protected-mode:默认 yes,开启保护模式,限制为本地访问appendonly:redis 持久化(可选)requirepass:设置访问密码为 123456运行容器docker run --name myredis -p 6379:6379 -v /home/docker/redis/data:/data -v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf说明:--name:容器名称-p :表示将服务器的 6379(冒号前的 6379)端口映射到 docker 的 6379(冒号后的 6379)端口-d :表示以后台服务的形式运行 redis-v :挂载宿主机目录redis redis-server /etc/redis/redis.conf:表示运行 redis 服务器程序,并且指定运行时的配置文件经过以上步骤,便可以通过 redis 客户端工具进行连接,如果连接不上,检查安全组和服务器防火墙端口是否开放安装 rabbitmq# 拉取带图形化管理界面的镜像 docker pull rabbitmq:3.7.7-management # 根据下载的镜像创建和启动容器 docker run -d --name rabbitmq3.7.7 -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin df80af9ca0c9说明:-d:后台运行容器;--name:指定容器名;-p:指定服务运行的端口(5672:应用访问端口;15672:控制台 Web 端口号);-v:映射目录或文件;--hostname :主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);-e:指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)Rabbitmq 访问地址:http://localhost:15672 至此,基本的运行环境都安装完毕,下面就是关键的打包步骤了。Vue 前端项目打包将 dist 下的所有文件目录拷贝到 SpringBoot 后端项目的 resources\static 目录下,static 目录需要新建。如果你的项目中用到了 shiro 或者 spring security 等安全框架,需要对静态资源放行。以上配置完成后,先在本地运行,再用 maven 进行打包。将 jar 包上传到服务器后,就要开始制作自己的镜像了,首先在与 jar 包同目录下新建 Dockerfile 文件。# 新建Dockerfile文件 touch Dockerfile # 编写Dockerfile文件 vim Dockerfile加入以下内容# Docker image for springboot file run # VERSION 0.0.1 FROM java:8 # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp # 将jar包添加到容器中并更名为app.jar ADD demo-01.jar app.jar # 运行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]执行 docker build -t [镜像名称] . ,至此镜像文件就制作完成了。docker images查看镜像是否存在。最后一步,创建并启动容器,docker run --name [容器名称] -d -p 80:8080 [镜像名]。
2023年02月16日
64 阅读
0 评论
0 点赞