准备工作 确保主机磁盘上有足够的可用空间 Windows 虚拟机安装 DiskGenius 具体步骤 终端执行 VBoxManage modifyhd 进行扩容,例如 VBoxManage modifyhd Windows.vdi --resize 102400 # 将磁盘空间调整为 100 GB 调整后的效果如下图(我之前分配的空间是 80 GB) 开启 Windows 虚拟机并打开 DiskGenius 右键点击要扩容的分区,选择扩容分区 点击空闲的磁盘空间,然后点击确定 点击红框选中的位置来切换动作,直到显示为 合并到 本地磁盘(...),然后点击开始 点击确定 点击是...
执行 Docker buildx build 时报 401 Unauthorized 错误的解决办法
问题描述 今天编译新的镜像时突然出现如下错误信息 ➜ custom git:(master) docker buildx build --platform linux/amd64,linux/arm64 -t chihpengkao/nextcloud:latest -t chihpengkao/nextcloud:v2022.06.22 --push . [+] Building 1.8s (5/5) FINISHED => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s...
修改 Oracle Cloud 甲骨文默认安全列表设置,使服务器能够对外提供 HTTP HTTPS 服务
写在前面 Oracle Cloud 默认的安全列表仅允许用户通过 22 端口进行 SSH 远程登录,如果你有其它需求,就需要额外配置。 接下来我会演示如何开放 80 与 443 端口,使服务器能够对外提供 HTTP HTTPS 服务。 准备工作 注册 Oracle Cloud 账号 创建 Oracle Cloud 计算实例 详细步骤 登录 点击管理面板中的 网络 – 虚拟云网络 点击与你计算实例相关联的虚拟云网络 vnc-xxxxxxxx-xxxx 点击 安全列表 – Default Security List for vcn-xxxxxxxx-xxxx 点击 添加入站规则...
Oracle Cloud 甲骨文云服务器添加 IPv6 地址的图文教程
准备工作 注册 Oracle Cloud 账号 创建 Oracle Cloud 计算实例 详细步骤 登录 点击管理面板中的 网络 – 虚拟云网络 点击与你计算实例相关联的虚拟云网络 vnc-xxxxxxxx-xxxx 点击 CIDR Blocks/Prefixes – Add CIDR Block/IPv6 Prefix,勾选 Assign an Oracle allocated IPv6 /56 prefix 然后点击 Add CIDR Blocks/Prefixes 点击与你计算实例相关联的子网 subnet-xxxxxxxx-xxxx 点击 编辑 –...
使用 Docker buildx 构建多架构镜像
写在前面 Docker 默认的 buildx 无法实现在同一个 build 内创建多架构镜像,这显然不利于我们的维护。 解决方案 使用 multiarch/qemu-user-static 仿真器来创建多架构环境 docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 创建自定义构建器 multiarch docker buildx create --name multiarch --driver docker-container --use 初始化自定义构建器 docker buildx inspect ...
解决 Nginx 反向代理 Docker 中的 apache2 站点时不能正确显示访问者 IP 地址的问题
写在前面 有时存在这么一种情况,docker 里跑着某个运行在 apache2 上的 HTTP 站点, nginx 服务器安装在主机对其进行反向代理。出于安全防护、统计等原因,你需要站点能获得访问者真实的 IP 地址,却发现通常 nginx 做反向代理时传递 X-Real-IP 和 X-Forwarded-For 的方法不管用了。 这是因为 docker 默认的 userland-proxy 转发方式会剥离数据包的原始地址,导致以桥接模式运行的 docker 容器获取到的 REMOTE_ADDR 变成了 docker 网关地址。X-Real-IP 和 X-Forwarded-For...
使用 watchtower 自动更新 Docker 容器
watchtower 简介 watchtower 可以定期检查本地所有的 docker 容器,当它们存在新版本时,自动进行更新。 简易使用命令 检查更新本地所有的 docker 容器,并在更新后自动清理旧版本的镜像 docker run --rm --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once 检查更新指定容器,并在更新后自动清理旧版本的镜像,只需要在命令后面加上容器名称,例如 vaultwarden 和 nginx docker...
使用 Nginx 反向代理 HTTP 站点并开启 HTTPS 来加密你的站点,保护交换数据的隐私与完整性
安全小记 – 使用 fail2ban 来防止数据库被爆破
写在前面 虽然最近把服务器的数据库 docker 化了,但因为历史遗留因素,我还是得把 3306 端口开放出来供 host 上的 Web app 访问。(老猪实在不想浪费时间把它们 docker 化了,又不是不能用) 如此一来,就又同过去一样,给了蟊贼光顾的机会,这我怎么能答应? 解决方案 安装 fail2ban sudo apt install fail2ban 在主机创建 /var/log/mysql 目录,然后添加好目录映射 修改 MariaDB 的配置文件,配置好错误日志的路径 log_error = /var/log/mysql/error.log 重启 MariaDB sudo...
记录一次 MariaDB 升级后输出大量错误日志,系统负载异常的解决办法
今天把 Docker 里跑的 MariaDB 更新到 10.8.3,接着发现群晖的系统负载有异常,于是检查了数据库日志,发现有下面这样的报错信息。 2022-05-24 21:04:11 3 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255). 2022-05-24 21:04:11 4 [ERROR] Incorrect...