<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>运维 on 撷时录</title><link>https://jiangbyte.github.io/tags/%E8%BF%90%E7%BB%B4/</link><description>Recent content in 运维 on 撷时录</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 07 Oct 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://jiangbyte.github.io/tags/%E8%BF%90%E7%BB%B4/index.xml" rel="self" type="application/rss+xml"/><item><title>Debian 13 友基 XP-Pen 数位板官方驱动与内核冲突排查固化</title><link>https://jiangbyte.github.io/p/debian-13-%E5%8F%8B%E5%9F%BA-xp-pen-%E6%95%B0%E4%BD%8D%E6%9D%BF%E5%AE%98%E6%96%B9%E9%A9%B1%E5%8A%A8%E4%B8%8E%E5%86%85%E6%A0%B8%E5%86%B2%E7%AA%81%E6%8E%92%E6%9F%A5%E5%9B%BA%E5%8C%96.html</link><pubDate>Wed, 07 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/debian-13-%E5%8F%8B%E5%9F%BA-xp-pen-%E6%95%B0%E4%BD%8D%E6%9D%BF%E5%AE%98%E6%96%B9%E9%A9%B1%E5%8A%A8%E4%B8%8E%E5%86%85%E6%A0%B8%E5%86%B2%E7%AA%81%E6%8E%92%E6%9F%A5%E5%9B%BA%E5%8C%96.html</guid><description>&lt;h2 id="环境"&gt;环境&lt;/h2&gt;&#10;&lt;p&gt;采集时间：2026-10-07。主机名 &lt;code&gt;dev&lt;/code&gt;。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;项&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;值&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;依据&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;系统&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Debian GNU/Linux 13 (trixie)，&lt;code&gt;DEBIAN_VERSION_FULL=13.7&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;/etc/os-release&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;内核&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;6.12.111+deb13-amd64&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;uname -r&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;机型&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;HP ProBook 450 15.6 inch G9 Notebook PC&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;/sys/class/dmi/id/product_name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;会话&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;XDG_SESSION_TYPE=x11&lt;/code&gt;，&lt;code&gt;DISPLAY=:0&lt;/code&gt;，&lt;code&gt;XDG_CURRENT_DESKTOP=GNOME&lt;/code&gt;，&lt;code&gt;GDMSESSION=gnome-xorg&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;环境变量&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;数位板 USB&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Bus 003 Device 022: ID 28bd:0905 XP-Pen 10 inch PenTablet&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;lsusb&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;sysfs&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;/sys/bus/usb/devices/3-4&lt;/code&gt;，&lt;code&gt;manufacturer=UGTABLET&lt;/code&gt;，&lt;code&gt;product=10 inch PenTablet&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;sysfs&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;驱动包&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ugeetablet 4.3&lt;/code&gt;（&lt;code&gt;Maintainer: tech@xp-pen.com&lt;/code&gt;）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;dpkg -l&lt;/code&gt; / &lt;code&gt;apt-cache show&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;安装包文件&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;/home/charlie/Downloads/ugeeTablet4.3.5-241031.deb&lt;/code&gt;（约 22MB，mtime 2026-10-07 19:36）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;驱动路径&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;/usr/lib/ugeeTablet/{ugeeTabletDriver,ugeeTablet,ugeeTabletDriver.sh}&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;文件系统&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;驱动配置目录&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;~/.config/Hanvon Ugee/ugee.conf&lt;/code&gt;（仅 LocalSocket 时间戳）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;文件系统&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;相关已装包&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;xserver-xorg-input-wacom 1.2.3-1&lt;/code&gt;，&lt;code&gt;libwacom9&lt;/code&gt;，&lt;code&gt;libwacom-common&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;dpkg -l&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;其它输入设备（配置未改）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;内置键盘 &lt;code&gt;AT Translated Set 2 keyboard&lt;/code&gt;；&lt;code&gt;Newmen ... 2.4G Keyboard Mouse&lt;/code&gt;；&lt;code&gt;SEMICO USB Gaming Keyboard&lt;/code&gt;；触控板 &lt;code&gt;SYNA30E5:00 06CB:CEAC&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;/sys/class/input/*/name&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;驱动 journal（2026-10-07 19:39:11）中的设备标识：&lt;/p&gt;</description></item><item><title>Docker 本机基础设施执行命令</title><link>https://jiangbyte.github.io/p/docker-%E6%9C%AC%E6%9C%BA%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4.html</link><pubDate>Sat, 03 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/docker-%E6%9C%AC%E6%9C%BA%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4.html</guid><description>&lt;h2 id="拉取镜像"&gt;拉取镜像&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== MySQL 9.7.2 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;docker pull docker.xuanyuan.run/library/mysql:9.7.2&lt;span class="p"&gt;;&lt;/span&gt; docker tag docker.xuanyuan.run/library/mysql:9.7.2 library/mysql:9.7.2&lt;span class="p"&gt;;&lt;/span&gt; docker rmi docker.xuanyuan.run/library/mysql:9.7.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Redis 8.8.2 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;docker pull docker.xuanyuan.run/library/redis:8.8.2&lt;span class="p"&gt;;&lt;/span&gt; docker tag docker.xuanyuan.run/library/redis:8.8.2 library/redis:8.8.2&lt;span class="p"&gt;;&lt;/span&gt; docker rmi docker.xuanyuan.run/library/redis:8.8.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Silo (MinIO 变体) =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;docker pull docker.xuanyuan.run/pgsty/silo:RELEASE.2026-08-06T00-00-00Z&lt;span class="p"&gt;;&lt;/span&gt; docker tag docker.xuanyuan.run/pgsty/silo:RELEASE.2026-08-06T00-00-00Z pgsty/silo:RELEASE.2026-08-06T00-00-00Z&lt;span class="p"&gt;;&lt;/span&gt; docker rmi docker.xuanyuan.run/pgsty/silo:RELEASE.2026-08-06T00-00-00Z&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== RabbitMQ 4.2.9-management =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt;docker pull docker.xuanyuan.run/library/rabbitmq:4.2.9-management&lt;span class="p"&gt;;&lt;/span&gt; docker tag docker.xuanyuan.run/library/rabbitmq:4.2.9-management library/rabbitmq:4.2.9-management&lt;span class="p"&gt;;&lt;/span&gt; docker rmi docker.xuanyuan.run/library/rabbitmq:4.2.9-management&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Ollama 0.33.1 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt;docker pull docker.xuanyuan.run/ollama/ollama:0.33.1&lt;span class="p"&gt;;&lt;/span&gt; docker tag docker.xuanyuan.run/ollama/ollama:0.33.1 ollama/ollama:0.33.1&lt;span class="p"&gt;;&lt;/span&gt; docker rmi docker.xuanyuan.run/ollama/ollama:0.33.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;15&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;16&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;17&lt;/span&gt;&lt;span class="cl"&gt;docker pull pgexh7a70kca8kgghn-quay.xuanyuan.run/coreos/etcd:v3.6.12&lt;span class="p"&gt;;&lt;/span&gt; docker tag pgexh7a70kca8kgghn-quay.xuanyuan.run/coreos/etcd:v3.6.12 quay.io/coreos/etcd:v3.6.12&lt;span class="p"&gt;;&lt;/span&gt; docker rmi pgexh7a70kca8kgghn-quay.xuanyuan.run/coreos/etcd:v3.6.12&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;18&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;19&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;20&lt;/span&gt;&lt;span class="cl"&gt;docker pull docker.xuanyuan.run/zilliz/attu:v3.0.0&lt;span class="p"&gt;;&lt;/span&gt; docker tag docker.xuanyuan.run/zilliz/attu:v3.0.0 zilliz/attu:v3.0.0&lt;span class="p"&gt;;&lt;/span&gt; docker rmi docker.xuanyuan.run/zilliz/attu:v3.0.0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;# ===== MySQL 9.7.2 =====&#10;docker pull docker.xuanyuan.run/library/mysql:9.7.2; docker tag docker.xuanyuan.run/library/mysql:9.7.2 library/mysql:9.7.2; docker rmi docker.xuanyuan.run/library/mysql:9.7.2&#10;&#10;# ===== Redis 8.8.2 =====&#10;docker pull docker.xuanyuan.run/library/redis:8.8.2; docker tag docker.xuanyuan.run/library/redis:8.8.2 library/redis:8.8.2; docker rmi docker.xuanyuan.run/library/redis:8.8.2&#10;&#10;# ===== Silo (MinIO 变体) =====&#10;docker pull docker.xuanyuan.run/pgsty/silo:RELEASE.2026-08-06T00-00-00Z; docker tag docker.xuanyuan.run/pgsty/silo:RELEASE.2026-08-06T00-00-00Z pgsty/silo:RELEASE.2026-08-06T00-00-00Z; docker rmi docker.xuanyuan.run/pgsty/silo:RELEASE.2026-08-06T00-00-00Z&#10;&#10;# ===== RabbitMQ 4.2.9-management =====&#10;docker pull docker.xuanyuan.run/library/rabbitmq:4.2.9-management; docker tag docker.xuanyuan.run/library/rabbitmq:4.2.9-management library/rabbitmq:4.2.9-management; docker rmi docker.xuanyuan.run/library/rabbitmq:4.2.9-management&#10;&#10;# ===== Ollama 0.33.1 =====&#10;docker pull docker.xuanyuan.run/ollama/ollama:0.33.1; docker tag docker.xuanyuan.run/ollama/ollama:0.33.1 ollama/ollama:0.33.1; docker rmi docker.xuanyuan.run/ollama/ollama:0.33.1&#10;&#10;&#10;docker pull pgexh7a70kca8kgghn-quay.xuanyuan.run/coreos/etcd:v3.6.12; docker tag pgexh7a70kca8kgghn-quay.xuanyuan.run/coreos/etcd:v3.6.12 quay.io/coreos/etcd:v3.6.12; docker rmi pgexh7a70kca8kgghn-quay.xuanyuan.run/coreos/etcd:v3.6.12&#10;&#10;&#10;docker pull docker.xuanyuan.run/zilliz/attu:v3.0.0; docker tag docker.xuanyuan.run/zilliz/attu:v3.0.0 zilliz/attu:v3.0.0; docker rmi docker.xuanyuan.run/zilliz/attu:v3.0.0&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="运行命令"&gt;运行命令&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== MySQL 9.7.2（开机自启）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name mysql &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt; -p 3306:3306 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MYSQL_ROOT_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/mysql:/var/lib/mysql &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; mysql:9.7.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Redis 8.8.2（开机自启 + AOF）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 10&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name redis &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 11&lt;/span&gt;&lt;span class="cl"&gt; -p 6379:6379 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 12&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REDIS_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 13&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/redis:/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 14&lt;/span&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 15&lt;/span&gt;&lt;span class="cl"&gt; redis:8.8.2 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 16&lt;/span&gt;&lt;span class="cl"&gt; --requirepass &lt;span class="s2"&gt;&amp;#34;infra123!&amp;#34;&lt;/span&gt; --appendonly yes&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 17&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 18&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 19&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== MySQL 9.7.2（开机不自启）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 20&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name mysql &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 21&lt;/span&gt;&lt;span class="cl"&gt; -p 3306:3306 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 22&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MYSQL_ROOT_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 23&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/mysql:/var/lib/mysql &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 24&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 25&lt;/span&gt;&lt;span class="cl"&gt; mysql:9.7.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 26&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 27&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Redis 8.8.2（开机不自启 + AOF）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 28&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name redis &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 29&lt;/span&gt;&lt;span class="cl"&gt; -p 6379:6379 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 30&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REDIS_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 31&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/redis:/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 32&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 33&lt;/span&gt;&lt;span class="cl"&gt; redis:8.8.2 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 34&lt;/span&gt;&lt;span class="cl"&gt; --requirepass &lt;span class="s2"&gt;&amp;#34;infra123!&amp;#34;&lt;/span&gt; --appendonly yes&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 35&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 36&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 37&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Silo (MinIO 变体) =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 38&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name silo &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 39&lt;/span&gt;&lt;span class="cl"&gt; -p 9000:9000 -p 9001:9001 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 40&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MINIO_ROOT_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;admin &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 41&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MINIO_ROOT_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 42&lt;/span&gt;&lt;span class="cl"&gt; -v silo_data:/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 43&lt;/span&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 44&lt;/span&gt;&lt;span class="cl"&gt; pgsty/silo:RELEASE.2026-08-06T00-00-00Z &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 45&lt;/span&gt;&lt;span class="cl"&gt; server /data --console-address &lt;span class="s2"&gt;&amp;#34;:9001&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 46&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 47&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 48&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Silo（默认不自启）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 49&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name silo &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 50&lt;/span&gt;&lt;span class="cl"&gt; -p 9000:9000 -p 9001:9001 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 51&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MINIO_ROOT_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;admin &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 52&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MINIO_ROOT_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 53&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/silo:/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 54&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 55&lt;/span&gt;&lt;span class="cl"&gt; pgsty/silo:RELEASE.2026-08-06T00-00-00Z &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 56&lt;/span&gt;&lt;span class="cl"&gt; server /data --console-address &lt;span class="s2"&gt;&amp;#34;:9001&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 57&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 58&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== RabbitMQ 4.2.9-management =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 59&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name rabbitmq &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 60&lt;/span&gt;&lt;span class="cl"&gt; -p 5672:5672 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 61&lt;/span&gt;&lt;span class="cl"&gt; -p 15672:15672 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 62&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;RABBITMQ_DEFAULT_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;admin &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 63&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;RABBITMQ_DEFAULT_PASS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 64&lt;/span&gt;&lt;span class="cl"&gt; -v rabbitmq_data:/var/lib/rabbitmq &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 65&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 66&lt;/span&gt;&lt;span class="cl"&gt; rabbitmq:4.2.9-management&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 67&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 68&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Ollama 0.33.1 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 69&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name ollama &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 70&lt;/span&gt;&lt;span class="cl"&gt; -p 11434:11434 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 71&lt;/span&gt;&lt;span class="cl"&gt; -v ollama_data:/root/.ollama &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 72&lt;/span&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 73&lt;/span&gt;&lt;span class="cl"&gt; ollama/ollama:0.33.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 74&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 75&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Ollama 0.33.1 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 76&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name ollama &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 77&lt;/span&gt;&lt;span class="cl"&gt; -p 11434:11434 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 78&lt;/span&gt;&lt;span class="cl"&gt; -v ollama_data:/root/.ollama &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 79&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 80&lt;/span&gt;&lt;span class="cl"&gt; ollama/ollama:0.33.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 81&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 82&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Draw.io 31.4.1 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 83&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name draw &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 84&lt;/span&gt;&lt;span class="cl"&gt; -p 18080:8080 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 85&lt;/span&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 86&lt;/span&gt;&lt;span class="cl"&gt; jgraph/drawio:31.4.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 87&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 88&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name drawio &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 89&lt;/span&gt;&lt;span class="cl"&gt; -p 18080:8080 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 90&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 91&lt;/span&gt;&lt;span class="cl"&gt; jgraph/drawio:31.4.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 92&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 93&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Nacos 2.5.0 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 94&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name nacos &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 95&lt;/span&gt;&lt;span class="cl"&gt; -p 8848:8848 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 96&lt;/span&gt;&lt;span class="cl"&gt; -p 9848:9848 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 97&lt;/span&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 98&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MODE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;standalone &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 99&lt;/span&gt;&lt;span class="cl"&gt; nacos/nacos-server:v2.5.0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;100&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;101&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;102&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;103&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name nginx &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;104&lt;/span&gt;&lt;span class="cl"&gt; -p 8080:80 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;105&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/ngnix/conf/nginx.conf:/etc/nginx/nginx.conf:ro &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;106&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/ngnix/conf/conf.d:/etc/nginx/conf.d:ro &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;107&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/ngnix/html:/usr/share/nginx/html:ro &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;108&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/ngnix/logs:/var/log/nginx &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;109&lt;/span&gt;&lt;span class="cl"&gt; -v /home/charlie/Workspace/datas/ngnix/ssl:/etc/nginx/ssl:ro &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;110&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;111&lt;/span&gt;&lt;span class="cl"&gt; nginx:stable-alpine3.24&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;# ===== MySQL 9.7.2（开机自启）=====&#10;docker run -d --name mysql \&#10; -p 3306:3306 \&#10; -e MYSQL_ROOT_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v /home/charlie/Workspace/datas/mysql:/var/lib/mysql \&#10; --restart unless-stopped \&#10; mysql:9.7.2&#10;&#10;# ===== Redis 8.8.2（开机自启 + AOF）=====&#10;docker run -d --name redis \&#10; -p 6379:6379 \&#10; -e REDIS_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v /home/charlie/Workspace/datas/redis:/data \&#10; --restart unless-stopped \&#10; redis:8.8.2 \&#10; --requirepass &amp;#34;infra123!&amp;#34; --appendonly yes&#10;&#10;&#10;# ===== MySQL 9.7.2（开机不自启）=====&#10;docker run -d --name mysql \&#10; -p 3306:3306 \&#10; -e MYSQL_ROOT_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v /home/charlie/Workspace/datas/mysql:/var/lib/mysql \&#10; --restart no \&#10; mysql:9.7.2&#10;&#10;# ===== Redis 8.8.2（开机不自启 + AOF）=====&#10;docker run -d --name redis \&#10; -p 6379:6379 \&#10; -e REDIS_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v /home/charlie/Workspace/datas/redis:/data \&#10; --restart no \&#10; redis:8.8.2 \&#10; --requirepass &amp;#34;infra123!&amp;#34; --appendonly yes&#10;&#10;&#10;# ===== Silo (MinIO 变体) =====&#10;docker run -d --name silo \&#10; -p 9000:9000 -p 9001:9001 \&#10; -e MINIO_ROOT_USER=admin \&#10; -e MINIO_ROOT_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v silo_data:/data \&#10; --restart unless-stopped \&#10; pgsty/silo:RELEASE.2026-08-06T00-00-00Z \&#10; server /data --console-address &amp;#34;:9001&amp;#34;&#10; &#10; &#10;# ===== Silo（默认不自启）=====&#10;docker run -d --name silo \&#10; -p 9000:9000 -p 9001:9001 \&#10; -e MINIO_ROOT_USER=admin \&#10; -e MINIO_ROOT_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v /home/charlie/Workspace/datas/silo:/data \&#10; --restart no \&#10; pgsty/silo:RELEASE.2026-08-06T00-00-00Z \&#10; server /data --console-address &amp;#34;:9001&amp;#34;&#10;&#10;# ===== RabbitMQ 4.2.9-management =====&#10;docker run -d --name rabbitmq \&#10; -p 5672:5672 \&#10; -p 15672:15672 \&#10; -e RABBITMQ_DEFAULT_USER=admin \&#10; -e RABBITMQ_DEFAULT_PASS=&amp;#39;infra123!&amp;#39; \&#10; -v rabbitmq_data:/var/lib/rabbitmq \&#10; --restart no \&#10; rabbitmq:4.2.9-management&#10;&#10;# ===== Ollama 0.33.1 =====&#10;docker run -d --name ollama \&#10; -p 11434:11434 \&#10; -v ollama_data:/root/.ollama \&#10; --restart unless-stopped \&#10; ollama/ollama:0.33.1&#10;&#10;# ===== Ollama 0.33.1 =====&#10;docker run -d --name ollama \&#10; -p 11434:11434 \&#10; -v ollama_data:/root/.ollama \&#10; --restart no \&#10; ollama/ollama:0.33.1&#10; &#10;# ===== Draw.io 31.4.1 =====&#10;docker run -d --name draw \&#10; -p 18080:8080 \&#10; --restart unless-stopped \&#10; jgraph/drawio:31.4.1&#10; &#10;docker run -d --name drawio \&#10; -p 18080:8080 \&#10; --restart no \&#10; jgraph/drawio:31.4.2&#10; &#10;# ===== Nacos 2.5.0 =====&#10;docker run -d --name nacos \&#10; -p 8848:8848 \&#10; -p 9848:9848 \&#10; --restart unless-stopped \&#10; -e MODE=standalone \&#10; nacos/nacos-server:v2.5.0&#10; &#10; &#10; &#10;docker run -d --name nginx \&#10; -p 8080:80 \&#10; -v /home/charlie/Workspace/datas/ngnix/conf/nginx.conf:/etc/nginx/nginx.conf:ro \&#10; -v /home/charlie/Workspace/datas/ngnix/conf/conf.d:/etc/nginx/conf.d:ro \&#10; -v /home/charlie/Workspace/datas/ngnix/html:/usr/share/nginx/html:ro \&#10; -v /home/charlie/Workspace/datas/ngnix/logs:/var/log/nginx \&#10; -v /home/charlie/Workspace/datas/ngnix/ssl:/etc/nginx/ssl:ro \&#10; --restart no \&#10; nginx:stable-alpine3.24&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="运行命令-1"&gt;运行命令&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== MySQL 9.7.2（开机不自启）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name mysql &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt; -p 3306:3306 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MYSQL_ROOT_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; -v mysql_data:/var/lib/mysql &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; mysql:9.7.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Redis 8.8.2（开机不自启 + AOF）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 10&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name redis &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 11&lt;/span&gt;&lt;span class="cl"&gt; -p 6379:6379 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 12&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REDIS_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 13&lt;/span&gt;&lt;span class="cl"&gt; -v redis_data:/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 14&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 15&lt;/span&gt;&lt;span class="cl"&gt; redis:8.8.2 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 16&lt;/span&gt;&lt;span class="cl"&gt; --requirepass &lt;span class="s2"&gt;&amp;#34;infra123!&amp;#34;&lt;/span&gt; --appendonly yes&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 17&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 18&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Silo（默认不自启）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 19&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name silo &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 20&lt;/span&gt;&lt;span class="cl"&gt; -p 9000:9000 -p 9001:9001 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 21&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MINIO_ROOT_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;admin &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 22&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MINIO_ROOT_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 23&lt;/span&gt;&lt;span class="cl"&gt; -v silo_data:/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 24&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 25&lt;/span&gt;&lt;span class="cl"&gt; pgsty/silo:RELEASE.2026-08-06T00-00-00Z &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 26&lt;/span&gt;&lt;span class="cl"&gt; server /data --console-address &lt;span class="s2"&gt;&amp;#34;:9001&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 27&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 28&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== RabbitMQ 4.2.9-management =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 29&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name rabbitmq &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 30&lt;/span&gt;&lt;span class="cl"&gt; -p 5672:5672 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 31&lt;/span&gt;&lt;span class="cl"&gt; -p 15672:15672 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 32&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;RABBITMQ_DEFAULT_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;admin &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 33&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;RABBITMQ_DEFAULT_PASS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 34&lt;/span&gt;&lt;span class="cl"&gt; -v rabbitmq_data:/var/lib/rabbitmq &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 35&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 36&lt;/span&gt;&lt;span class="cl"&gt; rabbitmq:4.2.9-management&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 37&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 38&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Ollama 0.33.1 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 39&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name ollama &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 40&lt;/span&gt;&lt;span class="cl"&gt; -p 11434:11434 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 41&lt;/span&gt;&lt;span class="cl"&gt; -v ollama_data:/root/.ollama &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 42&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 43&lt;/span&gt;&lt;span class="cl"&gt; ollama/ollama:0.33.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 44&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 45&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name drawio &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 46&lt;/span&gt;&lt;span class="cl"&gt; -p 18080:8080 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 47&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 48&lt;/span&gt;&lt;span class="cl"&gt; jgraph/drawio:31.4.6&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 49&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 50&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Nacos 2.5.0 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 51&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name nacos &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 52&lt;/span&gt;&lt;span class="cl"&gt; -p 8848:8848 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 53&lt;/span&gt;&lt;span class="cl"&gt; -p 9848:9848 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 54&lt;/span&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 55&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MODE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;standalone &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 56&lt;/span&gt;&lt;span class="cl"&gt; nacos/nacos-server:v2.5.0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 57&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 58&lt;/span&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 59&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Milvus 前置：命名卷写入 etcd 配置 =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 60&lt;/span&gt;&lt;span class="cl"&gt;docker volume create milvus_data&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 61&lt;/span&gt;&lt;span class="cl"&gt;docker run --rm -v milvus_data:/var/lib/milvus alpine sh -c &lt;span class="s1"&gt;&amp;#39;cat &amp;gt; /var/lib/milvus/embedEtcd.yaml &amp;lt;&amp;lt; EOF&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 62&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;listen-client-urls: http://0.0.0.0:2379&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 63&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;advertise-client-urls: http://0.0.0.0:2379&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 64&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;quota-backend-bytes: 4294967296&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 65&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;auto-compaction-mode: revision&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 66&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;auto-compaction-retention: &amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\&amp;#39;&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;1000&amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\&amp;#39;&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 67&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;EOF&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 68&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Milvus（开机不自启）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 69&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name milvus &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 70&lt;/span&gt;&lt;span class="cl"&gt; --pull&lt;span class="o"&gt;=&lt;/span&gt;never &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 71&lt;/span&gt;&lt;span class="cl"&gt; --security-opt seccomp:unconfined &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 72&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;ETCD_USE_EMBED&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 73&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;ETCD_DATA_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/var/lib/milvus/etcd &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 74&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;ETCD_CONFIG_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/var/lib/milvus/embedEtcd.yaml &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 75&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;COMMON_STORAGETYPE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 76&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;DEPLOY_MODE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;STANDALONE &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 77&lt;/span&gt;&lt;span class="cl"&gt; -v milvus_data:/var/lib/milvus &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 78&lt;/span&gt;&lt;span class="cl"&gt; -p 19530:19530 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 79&lt;/span&gt;&lt;span class="cl"&gt; -p 9091:9091 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 80&lt;/span&gt;&lt;span class="cl"&gt; -p 2379:2379 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 81&lt;/span&gt;&lt;span class="cl"&gt; --health-cmd&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;curl -f http://localhost:9091/healthz&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 82&lt;/span&gt;&lt;span class="cl"&gt; --health-interval&lt;span class="o"&gt;=&lt;/span&gt;30s &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 83&lt;/span&gt;&lt;span class="cl"&gt; --health-start-period&lt;span class="o"&gt;=&lt;/span&gt;90s &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 84&lt;/span&gt;&lt;span class="cl"&gt; --health-timeout&lt;span class="o"&gt;=&lt;/span&gt;20s &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 85&lt;/span&gt;&lt;span class="cl"&gt; --health-retries&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 86&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 87&lt;/span&gt;&lt;span class="cl"&gt; milvusdb/milvus:v3.0.1 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 88&lt;/span&gt;&lt;span class="cl"&gt; milvus run standalone&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 89&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== 开启鉴权，并把 root 密码改为 infra123! =====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 90&lt;/span&gt;&lt;span class="cl"&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; milvus sh -c &lt;span class="s1"&gt;&amp;#39;cat &amp;gt; /milvus/configs/user.yaml &amp;lt;&amp;lt; EOF&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 91&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;common:&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 92&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; security:&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 93&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; authorizationEnabled: true&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 94&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;EOF&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 95&lt;/span&gt;&lt;span class="cl"&gt;docker restart milvus&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 96&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 等 healthy 后执行&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 97&lt;/span&gt;&lt;span class="cl"&gt;curl -sS -X POST &lt;span class="s2"&gt;&amp;#34;http://127.0.0.1:19530/v2/vectordb/users/update_password&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 98&lt;/span&gt;&lt;span class="cl"&gt; -H &lt;span class="s2"&gt;&amp;#34;Authorization: Bearer root:Milvus&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 99&lt;/span&gt;&lt;span class="cl"&gt; -H &lt;span class="s2"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;100&lt;/span&gt;&lt;span class="cl"&gt; -d &lt;span class="s1"&gt;&amp;#39;{&amp;#34;userName&amp;#34;:&amp;#34;root&amp;#34;,&amp;#34;password&amp;#34;:&amp;#34;Milvus&amp;#34;,&amp;#34;newPassword&amp;#34;:&amp;#34;infra123!&amp;#34;}&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;101&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ===== Attu（开机不自启）=====&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;102&lt;/span&gt;&lt;span class="cl"&gt;docker run -d --name attu &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;103&lt;/span&gt;&lt;span class="cl"&gt; --pull&lt;span class="o"&gt;=&lt;/span&gt;never &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;104&lt;/span&gt;&lt;span class="cl"&gt; -p 8000:3000 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;105&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;MILVUS_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://host.docker.internal:19530 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;106&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;ATTU_ADMIN_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;admin &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;107&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;ATTU_ADMIN_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;infra123!&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;108&lt;/span&gt;&lt;span class="cl"&gt; -v attu_data:/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;109&lt;/span&gt;&lt;span class="cl"&gt; --add-host&lt;span class="o"&gt;=&lt;/span&gt;host.docker.internal:host-gateway &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;110&lt;/span&gt;&lt;span class="cl"&gt; --restart no &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;111&lt;/span&gt;&lt;span class="cl"&gt; zilliz/attu:v3.0.0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;# ===== MySQL 9.7.2（开机不自启）=====&#10;docker run -d --name mysql \&#10; -p 3306:3306 \&#10; -e MYSQL_ROOT_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v mysql_data:/var/lib/mysql \&#10; --restart no \&#10; mysql:9.7.2&#10;&#10;# ===== Redis 8.8.2（开机不自启 + AOF）=====&#10;docker run -d --name redis \&#10; -p 6379:6379 \&#10; -e REDIS_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v redis_data:/data \&#10; --restart no \&#10; redis:8.8.2 \&#10; --requirepass &amp;#34;infra123!&amp;#34; --appendonly yes&#10;&#10;# ===== Silo（默认不自启）=====&#10;docker run -d --name silo \&#10; -p 9000:9000 -p 9001:9001 \&#10; -e MINIO_ROOT_USER=admin \&#10; -e MINIO_ROOT_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v silo_data:/data \&#10; --restart no \&#10; pgsty/silo:RELEASE.2026-08-06T00-00-00Z \&#10; server /data --console-address &amp;#34;:9001&amp;#34;&#10;&#10;# ===== RabbitMQ 4.2.9-management =====&#10;docker run -d --name rabbitmq \&#10; -p 5672:5672 \&#10; -p 15672:15672 \&#10; -e RABBITMQ_DEFAULT_USER=admin \&#10; -e RABBITMQ_DEFAULT_PASS=&amp;#39;infra123!&amp;#39; \&#10; -v rabbitmq_data:/var/lib/rabbitmq \&#10; --restart no \&#10; rabbitmq:4.2.9-management&#10;&#10;# ===== Ollama 0.33.1 =====&#10;docker run -d --name ollama \&#10; -p 11434:11434 \&#10; -v ollama_data:/root/.ollama \&#10; --restart no \&#10; ollama/ollama:0.33.1&#10;&#10;docker run -d --name drawio \&#10; -p 18080:8080 \&#10; --restart no \&#10; jgraph/drawio:31.4.6&#10; &#10;# ===== Nacos 2.5.0 =====&#10;docker run -d --name nacos \&#10; -p 8848:8848 \&#10; -p 9848:9848 \&#10; --restart unless-stopped \&#10; -e MODE=standalone \&#10; nacos/nacos-server:v2.5.0&#10; &#10; &#10;# ===== Milvus 前置：命名卷写入 etcd 配置 =====&#10;docker volume create milvus_data&#10;docker run --rm -v milvus_data:/var/lib/milvus alpine sh -c &amp;#39;cat &amp;gt; /var/lib/milvus/embedEtcd.yaml &amp;lt;&amp;lt; EOF&#10;listen-client-urls: http://0.0.0.0:2379&#10;advertise-client-urls: http://0.0.0.0:2379&#10;quota-backend-bytes: 4294967296&#10;auto-compaction-mode: revision&#10;auto-compaction-retention: &amp;#39;\&amp;#39;&amp;#39;1000&amp;#39;\&amp;#39;&amp;#39;&#10;EOF&amp;#39;&#10;# ===== Milvus（开机不自启）=====&#10;docker run -d --name milvus \&#10; --pull=never \&#10; --security-opt seccomp:unconfined \&#10; -e ETCD_USE_EMBED=true \&#10; -e ETCD_DATA_DIR=/var/lib/milvus/etcd \&#10; -e ETCD_CONFIG_PATH=/var/lib/milvus/embedEtcd.yaml \&#10; -e COMMON_STORAGETYPE=local \&#10; -e DEPLOY_MODE=STANDALONE \&#10; -v milvus_data:/var/lib/milvus \&#10; -p 19530:19530 \&#10; -p 9091:9091 \&#10; -p 2379:2379 \&#10; --health-cmd=&amp;#34;curl -f http://localhost:9091/healthz&amp;#34; \&#10; --health-interval=30s \&#10; --health-start-period=90s \&#10; --health-timeout=20s \&#10; --health-retries=3 \&#10; --restart no \&#10; milvusdb/milvus:v3.0.1 \&#10; milvus run standalone&#10;# ===== 开启鉴权，并把 root 密码改为 infra123! =====&#10;docker exec milvus sh -c &amp;#39;cat &amp;gt; /milvus/configs/user.yaml &amp;lt;&amp;lt; EOF&#10;common:&#10; security:&#10; authorizationEnabled: true&#10;EOF&amp;#39;&#10;docker restart milvus&#10;# 等 healthy 后执行&#10;curl -sS -X POST &amp;#34;http://127.0.0.1:19530/v2/vectordb/users/update_password&amp;#34; \&#10; -H &amp;#34;Authorization: Bearer root:Milvus&amp;#34; \&#10; -H &amp;#34;Content-Type: application/json&amp;#34; \&#10; -d &amp;#39;{&amp;#34;userName&amp;#34;:&amp;#34;root&amp;#34;,&amp;#34;password&amp;#34;:&amp;#34;Milvus&amp;#34;,&amp;#34;newPassword&amp;#34;:&amp;#34;infra123!&amp;#34;}&amp;#39;&#10;# ===== Attu（开机不自启）=====&#10;docker run -d --name attu \&#10; --pull=never \&#10; -p 8000:3000 \&#10; -e MILVUS_URL=http://host.docker.internal:19530 \&#10; -e ATTU_ADMIN_USER=admin \&#10; -e ATTU_ADMIN_PASSWORD=&amp;#39;infra123!&amp;#39; \&#10; -v attu_data:/data \&#10; --add-host=host.docker.internal:host-gateway \&#10; --restart no \&#10; zilliz/attu:v3.0.0&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;</description></item><item><title>centos安装mysql</title><link>https://jiangbyte.github.io/p/centos%E5%AE%89%E8%A3%85mysql.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/centos%E5%AE%89%E8%A3%85mysql.html</guid><description>&lt;h2 id="先说背景"&gt;先说背景&lt;/h2&gt;&#10;&lt;p&gt;CentOS 7 自带的包管理是 Yum 不是 Dnf，而且官方源里没有 MySQL，得自己加仓库。这篇文章就是我在 CentOS 7 上装 MySQL 的完整记录，包括几种不同的安装方式，方便下次忘了回来看。&lt;/p&gt;&#10;&lt;h2 id="先看看系统版本"&gt;先看看系统版本&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;cat /etc/redhat-release&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;hostnamectl&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;cat /etc/redhat-release&#10;hostnamectl&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;输出是 &lt;code&gt;CentOS Linux release 7.x&lt;/code&gt; 就没问题。如果是 8 或 9 那包管理就变成 Dnf 了，步骤不太一样。&lt;/p&gt;&#10;&lt;h2 id="安装前要确认的事"&gt;安装前要确认的事&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;你有 &lt;code&gt;sudo&lt;/code&gt; 权限&lt;/li&gt;&#10;&lt;li&gt;机器能联网（离线场景下面有单独的方法）&lt;/li&gt;&#10;&lt;li&gt;防火墙要不要开 3306 端口看你自己需求&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="方法一用-yum-装最省事"&gt;方法一：用 Yum 装（最省事）&lt;/h2&gt;&#10;&lt;h3 id="先把仓库加上"&gt;先把仓库加上&lt;/h3&gt;&#10;&lt;p&gt;Oracle 官方准备好了 RPM 包，一行命令搞定：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;装完之后系统里会多一个 &lt;code&gt;/etc/yum.repos.d/mysql-community.repo&lt;/code&gt;，里面有好几个子仓库，默认启用的是 MySQL 8.0。&lt;/p&gt;</description></item><item><title>centos安装redis</title><link>https://jiangbyte.github.io/p/centos%E5%AE%89%E8%A3%85redis.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/centos%E5%AE%89%E8%A3%85redis.html</guid><description>&lt;h2 id="先说背景"&gt;先说背景&lt;/h2&gt;&#10;&lt;p&gt;CentOS 7 默认源里没有 Redis，得自己想办法。这篇整理了几种装法，从最省事的 Yum 到手动编译，看情况选就行。&lt;/p&gt;&#10;&lt;h2 id="方法一yum-装最省事"&gt;方法一：Yum 装（最省事）&lt;/h2&gt;&#10;&lt;h3 id="先加-epel-仓库"&gt;先加 EPEL 仓库&lt;/h3&gt;&#10;&lt;p&gt;Redis 在 EPEL（Extra Packages for Enterprise Linux）里：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo yum install epel-release&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo yum install epel-release&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="然后直接装"&gt;然后直接装&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo yum install redis&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo yum install redis&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="启动服务"&gt;启动服务&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl start redis&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; redis&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl status redis&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo systemctl start redis&#10;sudo systemctl enable redis&#10;sudo systemctl status redis&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="方法二编译安装想要最新版本"&gt;方法二：编译安装（想要最新版本）&lt;/h2&gt;&#10;&lt;p&gt;Yum 里的 Redis 版本一般比较老，想尝鲜就自己编译。&lt;/p&gt;</description></item><item><title>Debian 13 XFCE 开发机整理：熄屏、软件源、全局菜单与防火墙</title><link>https://jiangbyte.github.io/p/debian-13-xfce-%E5%BC%80%E5%8F%91%E6%9C%BA%E6%95%B4%E7%90%86%E7%86%84%E5%B1%8F%E8%BD%AF%E4%BB%B6%E6%BA%90%E5%85%A8%E5%B1%80%E8%8F%9C%E5%8D%95%E4%B8%8E%E9%98%B2%E7%81%AB%E5%A2%99.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/debian-13-xfce-%E5%BC%80%E5%8F%91%E6%9C%BA%E6%95%B4%E7%90%86%E7%86%84%E5%B1%8F%E8%BD%AF%E4%BB%B6%E6%BA%90%E5%85%A8%E5%B1%80%E8%8F%9C%E5%8D%95%E4%B8%8E%E9%98%B2%E7%81%AB%E5%A2%99.html</guid><description>&lt;h2 id="先说场景"&gt;先说场景&lt;/h2&gt;&#10;&lt;p&gt;机器是一台日常开发本：&lt;strong&gt;Debian GNU/Linux 13 (trixie) + XFCE&lt;/strong&gt;，硬件是 HP ProBook，双 NVMe，本机还跑着 Docker（MySQL / Redis / Portainer 等）。&lt;/p&gt;&#10;&lt;p&gt;一次顺手整理，把几件容易踩坑的事一起做完：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;关掉自动熄屏 / 挂起（插电、电池都关）&lt;/li&gt;&#10;&lt;li&gt;看清「要不要更新」，以及为什么 &lt;code&gt;apt&lt;/code&gt; 会甩出一千多个可升级包&lt;/li&gt;&#10;&lt;li&gt;注释掉 &lt;code&gt;sid&lt;/code&gt; / &lt;code&gt;bullseye&lt;/code&gt; 混源，只做安全范围内的升级&lt;/li&gt;&#10;&lt;li&gt;弄清 XApp / AppMenu，装上全局菜单并让它对齐、能导出菜单&lt;/li&gt;&#10;&lt;li&gt;看资源占用，给开发机开防火墙（默认不让别的设备访问）&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;下面按实际操作顺序写，命令可直接复用。&lt;/p&gt;&#10;&lt;h2 id="xfce关掉自动熄屏和挂起"&gt;XFCE：关掉自动熄屏和挂起&lt;/h2&gt;&#10;&lt;h3 id="电源管理-gui"&gt;电源管理 GUI&lt;/h3&gt;&#10;&lt;p&gt;打开：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;xfce4-power-manager-settings&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;xfce4-power-manager-settings&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;重点看两个标签，且 &lt;strong&gt;On battery / Plugged in 都要改&lt;/strong&gt;：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;System&lt;/strong&gt;：&lt;code&gt;When inactive for&lt;/code&gt; → &lt;strong&gt;Never&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Display&lt;/strong&gt;：&lt;code&gt;Put to sleep after&lt;/code&gt; / &lt;code&gt;Switch off after&lt;/code&gt; → &lt;strong&gt;Never&lt;/strong&gt;&lt;br&gt;&#10;更干净的做法：直接关掉 &lt;strong&gt;Display power management&lt;/strong&gt; 总开关&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;code&gt;Devices&lt;/code&gt; 标签只显示电池信息，没有熄屏相关选项。&lt;/p&gt;</description></item><item><title>Debian XFCE 换 GDM 登录页与用户头像</title><link>https://jiangbyte.github.io/p/debian-xfce-%E6%8D%A2-gdm-%E7%99%BB%E5%BD%95%E9%A1%B5%E4%B8%8E%E7%94%A8%E6%88%B7%E5%A4%B4%E5%83%8F.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/debian-xfce-%E6%8D%A2-gdm-%E7%99%BB%E5%BD%95%E9%A1%B5%E4%B8%8E%E7%94%A8%E6%88%B7%E5%A4%B4%E5%83%8F.html</guid><description>&lt;h2 id="目标与边界"&gt;目标与边界&lt;/h2&gt;&#10;&lt;p&gt;机器：&lt;strong&gt;Debian 13（trixie）+ XFCE&lt;/strong&gt;，原先用 &lt;strong&gt;LightDM + lightdm-gtk-greeter&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;要做的事：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;登录界面换成 &lt;strong&gt;GDM3&lt;/strong&gt;（只要登录页，&lt;strong&gt;不&lt;/strong&gt;换 GNOME 桌面）&lt;/li&gt;&#10;&lt;li&gt;登录后仍进 &lt;strong&gt;Xfce Session&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;能用图形工具调登录页外观（壁纸等）&lt;/li&gt;&#10;&lt;li&gt;搞清楚 &lt;strong&gt;登录头像&lt;/strong&gt; 改哪里、为什么 Mugshot / 只改 &lt;code&gt;~/.face&lt;/code&gt; 不生效&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;明确不做（本文范围外）：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;不装 WhiteSur / macOS 风 GDM 主题（可以后再加）&lt;/li&gt;&#10;&lt;li&gt;不卸载 LightDM 包（方便回退）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;桌面侧其它整理可对照：&lt;a href="./Debian%2013%20XFCE%20%E5%BC%80%E5%8F%91%E6%9C%BA%E6%95%B4%E7%90%86%EF%BC%9A%E7%86%84%E5%B1%8F%E3%80%81%E8%BD%AF%E4%BB%B6%E6%BA%90%E3%80%81%E5%85%A8%E5%B1%80%E8%8F%9C%E5%8D%95%E4%B8%8E%E9%98%B2%E7%81%AB%E5%A2%99.md"&gt;Debian 13 XFCE 开发机整理：熄屏、软件源、全局菜单与防火墙&lt;/a&gt;。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="先备份"&gt;先备份&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo cp -a /etc/X11/default-display-manager &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt; /etc/X11/default-display-manager.bak.&lt;span class="k"&gt;$(&lt;/span&gt;date +%Y%m%d%H%M%S&lt;span class="k"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo cp -a /etc/lightdm/lightdm.conf &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt; /etc/lightdm/lightdm.conf.bak.&lt;span class="k"&gt;$(&lt;/span&gt;date +%Y%m%d%H%M%S&lt;span class="k"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo cp -a /etc/X11/default-display-manager \&#10; /etc/X11/default-display-manager.bak.$(date +%Y%m%d%H%M%S)&#10;sudo cp -a /etc/lightdm/lightdm.conf \&#10; /etc/lightdm/lightdm.conf.bak.$(date +%Y%m%d%H%M%S)&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;确认当前 DM 与 XFCE 会话文件存在：&lt;/p&gt;</description></item><item><title>Debian安装Redis和MySQL</title><link>https://jiangbyte.github.io/p/debian%E5%AE%89%E8%A3%85redis%E5%92%8Cmysql.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/debian%E5%AE%89%E8%A3%85redis%E5%92%8Cmysql.html</guid><description>&lt;h2 id="说明"&gt;说明&lt;/h2&gt;&#10;&lt;p&gt;本文要装的是 &lt;strong&gt;Oracle MySQL&lt;/strong&gt; 和 &lt;strong&gt;Redis&lt;/strong&gt;，不是 MariaDB。&lt;/p&gt;&#10;&lt;p&gt;Debian 自带仓库里的 &lt;code&gt;default-mysql-server&lt;/code&gt; 实际会装成 &lt;strong&gt;MariaDB&lt;/strong&gt;，&lt;strong&gt;不要用那个包&lt;/strong&gt;。本机用 apt 装 MySQL 时，走 &lt;strong&gt;MySQL 官方 APT 源&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;方式&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Redis&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;MySQL&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;A. 软件源&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Debian 源 &lt;code&gt;redis-server&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MySQL 官方 APT → &lt;code&gt;mysql-community-server&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;B. Docker&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;redis:8.8.2&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;mysql:9.7.2&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;密码示例：&lt;code&gt;infra123!&lt;/code&gt;（请改成自己的）。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;不要两套同时占 3306 / 6379。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;前置：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="./linux%E5%88%9D%E5%A7%8B%E6%9C%BA.md"&gt;Linux 初始机&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="./%E9%85%8D%E7%BD%AEDebian%E8%BD%AF%E4%BB%B6%E6%BA%90.md"&gt;配置 Debian 软件源&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;走 Docker 时还需 &lt;a href="./Debian%E4%B8%AD%E5%9B%BD%E6%BA%90%E5%AE%89%E8%A3%85Docker.md"&gt;Debian 中国源安装 Docker&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="方式-a软件源安装含密码配置"&gt;方式 A：软件源安装（含密码配置）&lt;/h2&gt;&#10;&lt;h3 id="先清掉可能装过的-mariadb如有"&gt;先清掉可能装过的 MariaDB（如有）&lt;/h3&gt;&#10;&lt;p&gt;若以前误装过 &lt;code&gt;default-mysql-server&lt;/code&gt; / &lt;code&gt;mariadb-*&lt;/code&gt;，先卸干净，避免抢端口和混淆：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl stop mariadb mysql 2&amp;gt;/dev/null &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt purge -y &lt;span class="s1"&gt;&amp;#39;mariadb-*&amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;default-mysql-*&amp;#39;&lt;/span&gt; 2&amp;gt;/dev/null &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo apt autoremove -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 确认没有残留服务占 3306&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;sudo ss -tlnp &lt;span class="p"&gt;|&lt;/span&gt; grep &lt;span class="m"&gt;3306&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;3306 free&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo systemctl stop mariadb mysql 2&amp;gt;/dev/null || true&#10;sudo apt purge -y &amp;#39;mariadb-*&amp;#39; &amp;#39;default-mysql-*&amp;#39; 2&amp;gt;/dev/null || true&#10;sudo apt autoremove -y&#10;# 确认没有残留服务占 3306&#10;sudo ss -tlnp | grep 3306 || echo &amp;#39;3306 free&amp;#39;&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="安装-redisdebian-源"&gt;安装 Redis（Debian 源）&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install -y redis-server&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; --now redis-server&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl status redis-server --no-pager&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo apt update&#10;sudo apt install -y redis-server&#10;sudo systemctl enable --now redis-server&#10;sudo systemctl status redis-server --no-pager&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;未设密码时：&lt;/p&gt;</description></item><item><title>Debian中国源安装Docker</title><link>https://jiangbyte.github.io/p/debian%E4%B8%AD%E5%9B%BD%E6%BA%90%E5%AE%89%E8%A3%85docker.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/debian%E4%B8%AD%E5%9B%BD%E6%BA%90%E5%AE%89%E8%A3%85docker.html</guid><description>&lt;h2 id="前置"&gt;前置&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;已配好 Debian 软件源（见 &lt;a href="./%E9%85%8D%E7%BD%AEDebian%E8%BD%AF%E4%BB%B6%E6%BA%90.md"&gt;配置 Debian 软件源&lt;/a&gt;）&lt;/li&gt;&#10;&lt;li&gt;确认代号：&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;. /etc/os-release &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$VERSION_CODENAME&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 本文按 trixie 写；bookworm 等把下面 URL 里的代号一并改掉&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;. /etc/os-release &amp;amp;&amp;amp; echo &amp;#34;$VERSION_CODENAME&amp;#34;&#10;# 本文按 trixie 写；bookworm 等把下面 URL 里的代号一并改掉&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;不要用发行版仓库里过时的 &lt;code&gt;docker.io&lt;/code&gt; 凑合（可以跑，但版本和管理源往往不如官方 CE 清晰）。开发机推荐 &lt;strong&gt;Docker CE + 国内镜像&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;h2 id="依赖与-gpg-密钥"&gt;依赖与 GPG 密钥&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install -y ca-certificates curl&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;sudo install -m &lt;span class="m"&gt;0755&lt;/span&gt; -d /etc/apt/keyrings&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt; -o /etc/apt/keyrings/docker.asc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;sudo chmod a+r /etc/apt/keyrings/docker.asc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo apt update&#10;sudo apt install -y ca-certificates curl&#10;&#10;sudo install -m 0755 -d /etc/apt/keyrings&#10;sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg \&#10; -o /etc/apt/keyrings/docker.asc&#10;sudo chmod a+r /etc/apt/keyrings/docker.asc&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;若阿里云 GPG 地址异常，可用 Docker 官方密钥再继续用阿里云软件源（密钥与仓库可分开）。&lt;/p&gt;</description></item><item><title>linux初始机</title><link>https://jiangbyte.github.io/p/linux%E5%88%9D%E5%A7%8B%E6%9C%BA.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/linux%E5%88%9D%E5%A7%8B%E6%9C%BA.html</guid><description>&lt;h2 id="目标"&gt;目标&lt;/h2&gt;&#10;&lt;p&gt;新装或刚到手的 &lt;strong&gt;Debian&lt;/strong&gt; 开发机，先把「能正常干活」的底子铺好，再去改软件源、装 Docker、跑 MySQL / Redis。&lt;/p&gt;&#10;&lt;p&gt;本文以 &lt;strong&gt;Debian 13 (trixie) + 图形桌面（如 XFCE）&lt;/strong&gt; 为例，命令对服务器版同样适用（跳过桌面相关即可）。&lt;/p&gt;&#10;&lt;p&gt;建议阅读顺序：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;本文：01 Linux 初始机&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="./%E9%85%8D%E7%BD%AEDebian%E8%BD%AF%E4%BB%B6%E6%BA%90.md"&gt;配置 Debian 软件源&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="./Debian%E4%B8%AD%E5%9B%BD%E6%BA%90%E5%AE%89%E8%A3%85Docker.md"&gt;Debian 中国源安装 Docker&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="./Debian%E5%AE%89%E8%A3%85Redis%E5%92%8CMySQL.md"&gt;Debian 安装 Redis 和 MySQL&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="确认系统"&gt;确认系统&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;cat /etc/os-release&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;uname -r&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;hostnamectl&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;cat /etc/os-release&#10;uname -r&#10;hostnamectl&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;关注：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;VERSION_CODENAME&lt;/code&gt;（如 &lt;code&gt;trixie&lt;/code&gt;）——后面写源、装 Docker 都要用&lt;/li&gt;&#10;&lt;li&gt;架构一般为 &lt;code&gt;x86-64&lt;/code&gt; / &lt;code&gt;amd64&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="用户与-sudo"&gt;用户与 sudo&lt;/h2&gt;&#10;&lt;p&gt;安装时若已创建普通用户并勾选 sudo，可跳过。否则：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;su -&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;apt update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;apt install -y sudo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;usermod -aG sudo 你的用户名&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;su -&#10;apt update&#10;apt install -y sudo&#10;usermod -aG sudo 你的用户名&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;注销重登后验证：&lt;/p&gt;</description></item><item><title>ubuntu安装mysql</title><link>https://jiangbyte.github.io/p/ubuntu%E5%AE%89%E8%A3%85mysql.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/ubuntu%E5%AE%89%E8%A3%85mysql.html</guid><description>&lt;h2 id="先说背景"&gt;先说背景&lt;/h2&gt;&#10;&lt;p&gt;Ubuntu 的 APT 源里自带 MySQL，装起来比 CentOS 省心不少。不过默认版本可能不是最新的，想指定版本或者用官方最新版也有办法。&lt;/p&gt;&#10;&lt;h2 id="方法一apt-直接装最省事"&gt;方法一：APT 直接装（最省事）&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install mysql-server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo apt update&#10;sudo apt install mysql-server&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;装完启动：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl start mysql&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; mysql&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo systemctl start mysql&#10;sudo systemctl enable mysql&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;然后跑一下安全配置脚本：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo mysql_secure_installation&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo mysql_secure_installation&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;这个脚本会一步步引导你改 root 密码、删匿名用户、禁止 root 远程登录、删测试数据库。别跳过。&lt;/p&gt;</description></item><item><title>ubuntu安装redis</title><link>https://jiangbyte.github.io/p/ubuntu%E5%AE%89%E8%A3%85redis.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/ubuntu%E5%AE%89%E8%A3%85redis.html</guid><description>&lt;h2 id="先说背景"&gt;先说背景&lt;/h2&gt;&#10;&lt;p&gt;Ubuntu 比 CentOS 省心点，APT 源里直接有 Redis，不用额外加仓库。不过版本可能不是最新的，想尝鲜还是得自己编译。&lt;/p&gt;&#10;&lt;h2 id="方法一apt-装最省事"&gt;方法一：APT 装（最省事）&lt;/h2&gt;&#10;&lt;h3 id="更新源然后直接装"&gt;更新源然后直接装&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install redis-server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo apt update&#10;sudo apt install redis-server&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="启动服务"&gt;启动服务&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl start redis-server&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; redis-server&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl status redis-server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo systemctl start redis-server&#10;sudo systemctl enable redis-server&#10;sudo systemctl status redis-server&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="方法二编译安装想要最新版本"&gt;方法二：编译安装（想要最新版本）&lt;/h2&gt;&#10;&lt;p&gt;APT 里的版本一般落后一两个大版本，想用最新的就自己编译。&lt;/p&gt;&#10;&lt;h3 id="装编译工具"&gt;装编译工具&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt install build-essential tcl&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo apt update&#10;sudo apt install build-essential tcl&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="下载源码编译"&gt;下载源码编译&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /tmp&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;wget https://download.redis.io/redis-stable.tar.gz&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;tar -xzvf redis-stable.tar.gz&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; redis-stable&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;make&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;sudo make install&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;cd /tmp&#10;wget https://download.redis.io/redis-stable.tar.gz&#10;tar -xzvf redis-stable.tar.gz&#10;cd redis-stable&#10;make&#10;sudo make install&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="准备配置目录"&gt;准备配置目录&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo mkdir /etc/redis&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo mkdir /var/redis&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo cp redis.conf /etc/redis/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo mkdir /etc/redis&#10;sudo mkdir /var/redis&#10;sudo cp redis.conf /etc/redis/&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="基本配置"&gt;基本配置&lt;/h2&gt;&#10;&lt;h3 id="测试连接"&gt;测试连接&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;redis-cli&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;127.0.0.1:6379&amp;gt; ping&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;PONG&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;127.0.0.1:6379&amp;gt; &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;OK&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;127.0.0.1:6379&amp;gt; get &lt;span class="nb"&gt;test&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;127.0.0.1:6379&amp;gt; exit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;redis-cli&#10;127.0.0.1:6379&amp;gt; ping&#10;PONG&#10;127.0.0.1:6379&amp;gt; set test &amp;#34;hello&amp;#34;&#10;OK&#10;127.0.0.1:6379&amp;gt; get test&#10;&amp;#34;hello&amp;#34;&#10;127.0.0.1:6379&amp;gt; exit&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="改配置"&gt;改配置&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo nano /etc/redis/redis.conf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo nano /etc/redis/redis.conf&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;几个常用的：&lt;/p&gt;</description></item><item><title>XFCE AppMenu 居中与 Expand 被写回</title><link>https://jiangbyte.github.io/p/xfce-appmenu-%E5%B1%85%E4%B8%AD%E4%B8%8E-expand-%E8%A2%AB%E5%86%99%E5%9B%9E.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/xfce-appmenu-%E5%B1%85%E4%B8%AD%E4%B8%8E-expand-%E8%A2%AB%E5%86%99%E5%9B%9E.html</guid><description>&lt;h2 id="现象"&gt;现象&lt;/h2&gt;&#10;&lt;p&gt;顶栏装了 &lt;strong&gt;AppMenu Plugin&lt;/strong&gt; 之后：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;菜单标题（如 &lt;code&gt;Cursor&lt;/code&gt;、&lt;code&gt;Thunar&lt;/code&gt;）不靠左，像漂在面板中间&lt;/li&gt;&#10;&lt;li&gt;右键属性里把 &lt;strong&gt;Expand plugin on panel&lt;/strong&gt; 关掉，看起来正常了&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;注销 / 重启&lt;/strong&gt; 后，Expand 又被勾上，标题又居中&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;装全局菜单、环境变量、GTK module 等前置步骤见：&lt;a href="./Debian%2013%20XFCE%20%E5%BC%80%E5%8F%91%E6%9C%BA%E6%95%B4%E7%90%86%EF%BC%9A%E7%86%84%E5%B1%8F%E3%80%81%E8%BD%AF%E4%BB%B6%E6%BA%90%E3%80%81%E5%85%A8%E5%B1%80%E8%8F%9C%E5%8D%95%E4%B8%8E%E9%98%B2%E7%81%AB%E5%A2%99.md"&gt;Debian 13 XFCE 开发机整理：熄屏、软件源、全局菜单与防火墙&lt;/a&gt;。本文只挖 &lt;strong&gt;居中 / Expand 反复写回&lt;/strong&gt; 这一块。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="appmenu-是什么不是另一套更好的菜单"&gt;AppMenu 是什么（不是另一套更好的菜单）&lt;/h2&gt;&#10;&lt;p&gt;面板里叫 &lt;strong&gt;AppMenu Plugin&lt;/strong&gt; 的东西，包名是：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;apt-cache show xfce4-appmenu-plugin &lt;span class="p"&gt;|&lt;/span&gt; grep -E &lt;span class="s1"&gt;&amp;#39;^(Package|Source|Description)&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;apt-cache show xfce4-appmenu-plugin | grep -E &amp;#39;^(Package|Source|Description)&amp;#39;&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;实际就是 &lt;strong&gt;vala-panel-appmenu&lt;/strong&gt; 的 XFCE 后端：把当前窗口的 File / Edit 等导出到面板。&lt;br&gt;&#10;没有「再装一个更强的 AppMenu」这种替代品——同一种插件，名字略容易混。&lt;/p&gt;&#10;&lt;p&gt;相关包通常还有：&lt;code&gt;appmenu-gtk3-module&lt;/code&gt;、&lt;code&gt;appmenu-registrar&lt;/code&gt;。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="为什么会居中"&gt;为什么会「居中」&lt;/h2&gt;&#10;&lt;p&gt;面板插件有个开关：&lt;strong&gt;Expand plugin on panel&lt;/strong&gt;（扩展以填满可用空间）。&lt;/p&gt;</description></item><item><title>配置Debian软件源</title><link>https://jiangbyte.github.io/p/%E9%85%8D%E7%BD%AEdebian%E8%BD%AF%E4%BB%B6%E6%BA%90.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/%E9%85%8D%E7%BD%AEdebian%E8%BD%AF%E4%BB%B6%E6%BA%90.html</guid><description>&lt;h2 id="为什么要改源"&gt;为什么要改源&lt;/h2&gt;&#10;&lt;p&gt;默认 &lt;code&gt;deb.debian.org&lt;/code&gt; 在国内经常慢或不稳。开发机建议：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;软件包、更新、backports&lt;/strong&gt; → 中科大镜像（也可换清华、北外、阿里云等）&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;安全更新&lt;/strong&gt; → 继续用官方 &lt;code&gt;security.debian.org&lt;/code&gt;（更及时）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;同时要避免把 &lt;strong&gt;sid（unstable）&lt;/strong&gt;、旧版 &lt;strong&gt;bullseye&lt;/strong&gt; 和当前稳定版写进同一套默认源，否则 &lt;code&gt;apt list --upgradable&lt;/code&gt; 会刷出上千个包，一不小心就把桌面拖进滚动版。&lt;/p&gt;&#10;&lt;h2 id="备份"&gt;备份&lt;/h2&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak.&lt;span class="k"&gt;$(&lt;/span&gt;date +%Y%m%d%H%M%S&lt;span class="k"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak.$(date +%Y%m%d%H%M%S)&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;确认代号：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;. /etc/os-release &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$VERSION_CODENAME&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Debian 13 → trixie&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;. /etc/os-release &amp;amp;&amp;amp; echo &amp;#34;$VERSION_CODENAME&amp;#34;&#10;# Debian 13 → trixie&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;下文以 &lt;strong&gt;trixie&lt;/strong&gt; 为例，其他版本替换代号即可。&lt;/p&gt;&#10;&lt;h2 id="推荐的-sourceslist"&gt;推荐的 sources.list&lt;/h2&gt;&#10;&lt;p&gt;以**中国科学技术大学（USTC）**镜像为例：&lt;/p&gt;</description></item><item><title>使用 Docker 快速部署数据服务环境</title><link>https://jiangbyte.github.io/p/%E4%BD%BF%E7%94%A8-docker-%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1%E7%8E%AF%E5%A2%83.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/%E4%BD%BF%E7%94%A8-docker-%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1%E7%8E%AF%E5%A2%83.html</guid><description>&lt;h2 id="前置准备"&gt;前置准备&lt;/h2&gt;&#10;&lt;p&gt;首先创建所有服务的数据持久化目录：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 创建统一的数据存储目录&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;mkdir -p ~/docker-data/&lt;span class="o"&gt;{&lt;/span&gt;postgres,redis,rabbitmq&lt;span class="o"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;# 创建统一的数据存储目录&#10;mkdir -p ~/docker-data/{postgres,redis,rabbitmq}&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="服务部署"&gt;服务部署&lt;/h2&gt;&#10;&lt;h3 id="postgresql支持向量扩展端口5433"&gt;PostgreSQL（支持向量扩展，端口5433）&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 拉取支持向量扩展的PostgreSQL镜像&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;docker pull pgvector/pgvector:pg17&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 启动PostgreSQL容器&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;docker run -d &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; --name postgres &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; --restart unless-stopped &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; -m 512m &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;POSTGRES_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;123456&lt;/span&gt; &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;POSTGRES_DB&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;myapp &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; -v ~/docker-data/postgres:/var/lib/postgresql/data &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; -p 5433:5432 &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; pgvector/pgvector:pg17&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;# 拉取支持向量扩展的PostgreSQL镜像&#10;docker pull pgvector/pgvector:pg17&#10;&#10;# 启动PostgreSQL容器&#10;docker run -d \&#10; --name postgres \&#10; --restart unless-stopped \&#10; -m 512m \&#10; -e POSTGRES_PASSWORD=123456 \&#10; -e POSTGRES_DB=myapp \&#10; -v ~/docker-data/postgres:/var/lib/postgresql/data \&#10; -p 5433:5432 \&#10; pgvector/pgvector:pg17&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;&lt;strong&gt;启用向量扩展（首次启动后执行）：&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>主从复制配置</title><link>https://jiangbyte.github.io/p/%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6%E9%85%8D%E7%BD%AE.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6%E9%85%8D%E7%BD%AE.html</guid><description>&lt;h2 id="先说背景"&gt;先说背景&lt;/h2&gt;&#10;&lt;p&gt;两台机器，主库 CentOS 7，从库 Ubuntu，配 MySQL 主从复制。这篇是实际操作记录，方便下次复用。&lt;/p&gt;&#10;&lt;h2 id="主库配置centos"&gt;主库配置（CentOS）&lt;/h2&gt;&#10;&lt;h3 id="改配置文件"&gt;改配置文件&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo vi /etc/my.cnf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo vi /etc/my.cnf&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;在 &lt;code&gt;[mysqld]&lt;/code&gt; 段加这些：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="text"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;text&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;pre tabindex="0"&gt;&lt;code&gt;[mysqld]&#10;server-id = 1 # 主库 id，随便填，唯一就行&#10;log_bin = /var/log/mysql/mysql-bin.log&#10;read-only = 0 # 0 表示读写（主库）&#10;binlog_expire_logs_seconds = 2592000 # 日志保留 30 天&#10;max_binlog_size = 100M&#10;# binlog_do_db = astro_code # 只同步指定库&#10;# binlog_ignore_db = mysql,sys # 不同步的库&lt;/code&gt;&lt;/pre&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-text"&gt;[mysqld]&#10;server-id = 1 # 主库 id，随便填，唯一就行&#10;log_bin = /var/log/mysql/mysql-bin.log&#10;read-only = 0 # 0 表示读写（主库）&#10;binlog_expire_logs_seconds = 2592000 # 日志保留 30 天&#10;max_binlog_size = 100M&#10;# binlog_do_db = astro_code # 只同步指定库&#10;# binlog_ignore_db = mysql,sys # 不同步的库&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="创建日志目录"&gt;创建日志目录&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo mkdir -p /var/log/mysql&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo chown mysql:mysql /var/log/mysql&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo chmod &lt;span class="m"&gt;755&lt;/span&gt; /var/log/mysql&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo mkdir -p /var/log/mysql&#10;sudo chown mysql:mysql /var/log/mysql&#10;sudo chmod 755 /var/log/mysql&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="重启主库"&gt;重启主库&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo systemctl restart mysqld&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;sudo systemctl restart mysqld&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="创建复制专用用户"&gt;创建复制专用用户&lt;/h3&gt;&#10;&lt;p&gt;主库上创建个用户给从库用：&lt;/p&gt;</description></item></channel></rss>