mirror of
https://github.com/oneclickvirt/oneclickvirt.github.io.git
synced 2026-05-18 22:16:59 +08:00
deploy: 2622ea8aa1
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const g=JSON.parse('{"title":"ECS","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case1.md","filePath":"case/case1.md","lastUpdated":1775571225000}'),e={name:"case/case1.md"};function h(l,s,p,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t("",74)]))}const o=i(e,[["render",h]]);export{g as __pageData,o as default};
|
||||
import{_ as i,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const g=JSON.parse('{"title":"ECS","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case1.md","filePath":"case/case1.md","lastUpdated":1775621851000}'),e={name:"case/case1.md"};function h(l,s,p,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t("",74)]))}const o=i(e,[["render",h]]);export{g as __pageData,o as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case2.md","filePath":"case/case2.md","lastUpdated":1775571225000}'),l={name:"case/case2.md"};function t(p,s,h,r,k,d){return n(),a("div",null,s[0]||(s[0]=[e("",109)]))}const F=i(l,[["render",t]]);export{c as __pageData,F as default};
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case2.md","filePath":"case/case2.md","lastUpdated":1775621851000}'),l={name:"case/case2.md"};function t(p,s,h,r,k,d){return n(),a("div",null,s[0]||(s[0]=[e("",109)]))}const F=i(l,[["render",t]]);export{c as __pageData,F as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as s,c as a,o as t,ag as p}from"./chunks/framework.QPV3Ar9-.js";const b=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case3.md","filePath":"case/case3.md","lastUpdated":1775571225000}'),i={name:"case/case3.md"};function n(r,e,l,c,d,h){return t(),a("div",null,e[0]||(e[0]=[p("",44)]))}const u=s(i,[["render",n]]);export{b as __pageData,u as default};
|
||||
import{_ as s,c as a,o as t,ag as p}from"./chunks/framework.QPV3Ar9-.js";const b=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case3.md","filePath":"case/case3.md","lastUpdated":1775621851000}'),i={name:"case/case3.md"};function n(r,e,l,c,d,h){return t(),a("div",null,e[0]||(e[0]=[p("",44)]))}const u=s(i,[["render",n]]);export{b as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as r,ag as c}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case4.md","filePath":"case/case4.md","lastUpdated":1775571225000}'),i={name:"case/case4.md"};function s(l,a,n,h,o,b){return r(),t("div",null,a[0]||(a[0]=[c('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to "仓库""></a></h1><p><a href="https://github.com/oneclickvirt/backtrace" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/backtrace</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits" loading="lazy"></a></p><h1 id="backtrace" tabindex="-1">backtrace <a class="header-anchor" href="#backtrace" aria-label="Permalink to "backtrace""></a></h1><p>三网回程路由线路测试</p><p>基于 <a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">https://github.com/zhanghanyun/backtrace</a> 的重构和优化,与原版存在很大不同</p><p>路由的线路判断最终还是得人工判断的才准确,本项目测试结果仅供参考</p><h2 id="功能" tabindex="-1">功能 <a class="header-anchor" href="#功能" aria-label="Permalink to "功能""></a></h2><ul><li>[x] 检测回程显示IPV4地址时的线路,不显示IP地址时显示ASN检测不到,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>也支持</li><li>[x] 支持对<code>4837</code>、<code>9929</code>和<code>163</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>也支持</li><li>[x] 支持对<code>CN2GT</code>和<code>CN2GIA</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>不支持</li><li>[x] 支持对<code>CMIN2</code>和<code>CMI</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>不支持</li><li>[x] 支持对整个回程路由进行线路分析,与原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>仅进行一次判断不同</li><li>[x] 修复原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>对IPV4地址信息获取时json解析失败依然打印信息的问题</li><li>[x] 增加对全平台的编译支持,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>仅支持linux平台的amd64和arm64架构</li></ul><h2 id="使用" tabindex="-1">使用 <a class="header-anchor" href="#使用" aria-label="Permalink to "使用""></a></h2><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/backtrace/main/backtrace_install.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -sSf</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>更多架构请查看 <a href="https://github.com/oneclickvirt/backtrace/releases/tag/output" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/backtrace/releases/tag/output</a></p><h2 id="概览图" tabindex="-1">概览图 <a class="header-anchor" href="#概览图" aria-label="Permalink to "概览图""></a></h2><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/4688f99f-0f02-486f-8ffc-78d30f2c2f95" alt="图片" loading="lazy"></p><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/2812a47d-4e6b-4091-9bb9-596af6c3c8bc" alt="图片" loading="lazy"></p><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/2e5cc625-e0da-41ff-85ff-9d21c01114a3" alt="图片" loading="lazy"></p>',16)]))}const d=e(i,[["render",s]]);export{k as __pageData,d as default};
|
||||
import{_ as e,c as t,o as r,ag as c}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case4.md","filePath":"case/case4.md","lastUpdated":1775621851000}'),i={name:"case/case4.md"};function s(l,a,n,h,o,b){return r(),t("div",null,a[0]||(a[0]=[c('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to "仓库""></a></h1><p><a href="https://github.com/oneclickvirt/backtrace" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/backtrace</a></p><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false" alt="Hits" loading="lazy"></a></p><h1 id="backtrace" tabindex="-1">backtrace <a class="header-anchor" href="#backtrace" aria-label="Permalink to "backtrace""></a></h1><p>三网回程路由线路测试</p><p>基于 <a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">https://github.com/zhanghanyun/backtrace</a> 的重构和优化,与原版存在很大不同</p><p>路由的线路判断最终还是得人工判断的才准确,本项目测试结果仅供参考</p><h2 id="功能" tabindex="-1">功能 <a class="header-anchor" href="#功能" aria-label="Permalink to "功能""></a></h2><ul><li>[x] 检测回程显示IPV4地址时的线路,不显示IP地址时显示ASN检测不到,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>也支持</li><li>[x] 支持对<code>4837</code>、<code>9929</code>和<code>163</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>也支持</li><li>[x] 支持对<code>CN2GT</code>和<code>CN2GIA</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>不支持</li><li>[x] 支持对<code>CMIN2</code>和<code>CMI</code>线路的判断,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>不支持</li><li>[x] 支持对整个回程路由进行线路分析,与原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>仅进行一次判断不同</li><li>[x] 修复原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>对IPV4地址信息获取时json解析失败依然打印信息的问题</li><li>[x] 增加对全平台的编译支持,原版<a href="https://github.com/zhanghanyun/backtrace" target="_blank" rel="noreferrer">backtrace</a>仅支持linux平台的amd64和arm64架构</li></ul><h2 id="使用" tabindex="-1">使用 <a class="header-anchor" href="#使用" aria-label="Permalink to "使用""></a></h2><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/backtrace/main/backtrace_install.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -sSf</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> sh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>更多架构请查看 <a href="https://github.com/oneclickvirt/backtrace/releases/tag/output" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/backtrace/releases/tag/output</a></p><h2 id="概览图" tabindex="-1">概览图 <a class="header-anchor" href="#概览图" aria-label="Permalink to "概览图""></a></h2><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/4688f99f-0f02-486f-8ffc-78d30f2c2f95" alt="图片" loading="lazy"></p><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/2812a47d-4e6b-4091-9bb9-596af6c3c8bc" alt="图片" loading="lazy"></p><p><img src="https://github.com/oneclickvirt/backtrace/assets/103393591/2e5cc625-e0da-41ff-85ff-9d21c01114a3" alt="图片" loading="lazy"></p>',16)]))}const d=e(i,[["render",s]]);export{k as __pageData,d as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as r,ag as c}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case4.md","filePath":"case/case4.md","lastUpdated":1775571225000}'),i={name:"case/case4.md"};function s(l,a,n,h,o,b){return r(),t("div",null,a[0]||(a[0]=[c("",16)]))}const d=e(i,[["render",s]]);export{k as __pageData,d as default};
|
||||
import{_ as e,c as t,o as r,ag as c}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case4.md","filePath":"case/case4.md","lastUpdated":1775621851000}'),i={name:"case/case4.md"};function s(l,a,n,h,o,b){return r(),t("div",null,a[0]||(a[0]=[c("",16)]))}const d=e(i,[["render",s]]);export{k as __pageData,d as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as s,o as i,ag as t}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1775571225000}'),r={name:"case/case5.md"};function l(p,e,n,c,o,d){return i(),s("div",null,e[0]||(e[0]=[t("",26)]))}const b=a(r,[["render",l]]);export{u as __pageData,b as default};
|
||||
import{_ as a,c as s,o as i,ag as t}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1775621851000}'),r={name:"case/case5.md"};function l(p,e,n,c,o,d){return i(),s("div",null,e[0]||(e[0]=[t("",26)]))}const b=a(r,[["render",l]]);export{u as __pageData,b as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as i,o as e,ag as p}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case6.md","filePath":"case/case6.md","lastUpdated":1775571225000}'),t={name:"case/case6.md"};function h(n,s,l,r,d,k){return e(),i("div",null,s[0]||(s[0]=[p("",18)]))}const F=a(t,[["render",h]]);export{c as __pageData,F as default};
|
||||
import{_ as a,c as i,o as e,ag as p}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case6.md","filePath":"case/case6.md","lastUpdated":1775621851000}'),t={name:"case/case6.md"};function h(n,s,l,r,d,k){return e(),i("div",null,s[0]||(s[0]=[p("",18)]))}const F=a(t,[["render",h]]);export{c as __pageData,F as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as s,c as i,o as t,ag as e}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1775571225000}'),h={name:"case/case7.md"};function p(n,a,r,l,d,k){return t(),i("div",null,a[0]||(a[0]=[e('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to "仓库""></a></h1><p><a href="https://github.com/spiritLHLS/addzram" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addzram</a></p><h1 id="addzram" tabindex="-1">addzram <a class="header-anchor" href="#addzram" aria-label="Permalink to "addzram""></a></h1><p>为linux服务器启用zram(压缩内存)</p><p>国际</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>国内</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>类同前面的addswap项目</p><p>同样是给机器优化内存占用的东西,只不过zram是压缩内存占用,swap是附加虚拟内存增加内存空间,二者都会占用CPU资源,zram在CPU性能冗余的机器上使用更优</p><p>(理论上zram会比swap的性能占用低,但未实际测试过)</p><p><strong>单位换算:输入 1024 产生 1G 的 zram 设备压缩内存,zram 设备大小不能大于实际内存大小</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to "致谢""></a></h1><p>感谢 <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> 提供优化建议</p>',14)]))}const c=s(h,[["render",p]]);export{m as __pageData,c as default};
|
||||
import{_ as s,c as i,o as t,ag as e}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1775621851000}'),h={name:"case/case7.md"};function p(n,a,r,l,d,k){return t(),i("div",null,a[0]||(a[0]=[e('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to "仓库""></a></h1><p><a href="https://github.com/spiritLHLS/addzram" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addzram</a></p><h1 id="addzram" tabindex="-1">addzram <a class="header-anchor" href="#addzram" aria-label="Permalink to "addzram""></a></h1><p>为linux服务器启用zram(压缩内存)</p><p>国际</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>国内</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> addzram.sh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>类同前面的addswap项目</p><p>同样是给机器优化内存占用的东西,只不过zram是压缩内存占用,swap是附加虚拟内存增加内存空间,二者都会占用CPU资源,zram在CPU性能冗余的机器上使用更优</p><p>(理论上zram会比swap的性能占用低,但未实际测试过)</p><p><strong>单位换算:输入 1024 产生 1G 的 zram 设备压缩内存,zram 设备大小不能大于实际内存大小</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to "致谢""></a></h1><p>感谢 <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> 提供优化建议</p>',14)]))}const c=s(h,[["render",p]]);export{m as __pageData,c as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as s,c as i,o as t,ag as e}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1775571225000}'),h={name:"case/case7.md"};function p(n,a,r,l,d,k){return t(),i("div",null,a[0]||(a[0]=[e("",14)]))}const c=s(h,[["render",p]]);export{m as __pageData,c as default};
|
||||
import{_ as s,c as i,o as t,ag as e}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1775621851000}'),h={name:"case/case7.md"};function p(n,a,r,l,d,k){return t(),i("div",null,a[0]||(a[0]=[e("",14)]))}const c=s(h,[["render",p]]);export{m as __pageData,c as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","description":"","frontmatter":{"layout":"home","title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","hero":{"name":"其他实用项目","text":"与Linux相关的其他实用项目","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"实用性","details":"仁者见仁智者见智。"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1775571225000}'),n={name:"case/index.md"};function s(i,o,r,c,l,p){return a(),t("div")}const h=e(n,[["render",s]]);export{m as __pageData,h as default};
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","description":"","frontmatter":{"layout":"home","title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","hero":{"name":"其他实用项目","text":"与Linux相关的其他实用项目","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"实用性","details":"仁者见仁智者见智。"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1775621851000}'),n={name:"case/index.md"};function s(i,o,r,c,l,p){return a(),t("div")}const h=e(n,[["render",s]]);export{m as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","description":"","frontmatter":{"layout":"home","title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","hero":{"name":"其他实用项目","text":"与Linux相关的其他实用项目","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"实用性","details":"仁者见仁智者见智。"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1775571225000}'),n={name:"case/index.md"};function s(i,o,r,c,l,p){return a(),t("div")}const h=e(n,[["render",s]]);export{m as __pageData,h as default};
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","description":"","frontmatter":{"layout":"home","title":"其他实用项目","titleTemplate":"与Linux相关的其他实用项目","hero":{"name":"其他实用项目","text":"与Linux相关的其他实用项目","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"实用性","details":"仁者见仁智者见智。"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1775621851000}'),n={name:"case/index.md"};function s(i,o,r,c,l,p){return a(),t("div")}const h=e(n,[["render",s]]);export{m as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","hero":{"name":"开发手册","text":"开发手册","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1775571225000}'),n={name:"developer/index.md"};function l(o,r,s,i,p,d){return a(),t("div")}const h=e(n,[["render",l]]);export{m as __pageData,h as default};
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","hero":{"name":"开发手册","text":"开发手册","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1775621851000}'),n={name:"developer/index.md"};function l(o,r,s,i,p,d){return a(),t("div")}const h=e(n,[["render",l]]);export{m as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","hero":{"name":"开发手册","text":"开发手册","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1775571225000}'),n={name:"developer/index.md"};function l(o,r,s,i,p,d){return a(),t("div")}const h=e(n,[["render",l]]);export{m as __pageData,h as default};
|
||||
import{_ as e,c as t,o as a}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册,欢迎你提出高质量的Pull Request,帮助一键虚拟化项目变得更好!","hero":{"name":"开发手册","text":"开发手册","image":"https://cdn.spiritlhl.net/https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1775621851000}'),n={name:"developer/index.md"};function l(o,r,s,i,p,d){return a(),t("div")}const h=e(n,[["render",l]]);export{m as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as l,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1775571225000}'),r={name:"developer/l10n.md"};function d(n,e,i,c,s,_){return a(),l("div",null,e[0]||(e[0]=[t('<p><strong>你可以在开发新功能时遵循以下步骤来支持本地化</strong></p><h2 id="介绍" tabindex="-1">介绍 <a class="header-anchor" href="#介绍" aria-label="Permalink to "介绍""></a></h2><ol><li>你可以直接使用 <code>/resource/l10n/zh-CN.toml</code> 中已有的文本配置来替换新功能中的文本</li><li>如果新功能中有新增文本,请参考 <code>zh-CN.toml</code> 的配置文本,将新文本拉取到 <code>zh-CN.toml</code> 等其他语言的配置文件中,并添加翻译</li></ol><h2 id="新本地化文本的添加" tabindex="-1">新本地化文本的添加 <a class="header-anchor" href="#新本地化文本的添加" aria-label="Permalink to "新本地化文本的添加""></a></h2><ol><li>在 <code>/resource/l10n/</code> 中添加新的语言文本配置</li><li>在新的语言文本配置中拉取其他语言已有的文本配置</li><li>为新的语言文本配置添加翻译</li></ol>',5)]))}const m=o(r,[["render",d]]);export{h as __pageData,m as default};
|
||||
import{_ as o,c as l,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1775621851000}'),r={name:"developer/l10n.md"};function d(n,e,i,c,s,_){return a(),l("div",null,e[0]||(e[0]=[t('<p><strong>你可以在开发新功能时遵循以下步骤来支持本地化</strong></p><h2 id="介绍" tabindex="-1">介绍 <a class="header-anchor" href="#介绍" aria-label="Permalink to "介绍""></a></h2><ol><li>你可以直接使用 <code>/resource/l10n/zh-CN.toml</code> 中已有的文本配置来替换新功能中的文本</li><li>如果新功能中有新增文本,请参考 <code>zh-CN.toml</code> 的配置文本,将新文本拉取到 <code>zh-CN.toml</code> 等其他语言的配置文件中,并添加翻译</li></ol><h2 id="新本地化文本的添加" tabindex="-1">新本地化文本的添加 <a class="header-anchor" href="#新本地化文本的添加" aria-label="Permalink to "新本地化文本的添加""></a></h2><ol><li>在 <code>/resource/l10n/</code> 中添加新的语言文本配置</li><li>在新的语言文本配置中拉取其他语言已有的文本配置</li><li>为新的语言文本配置添加翻译</li></ol>',5)]))}const m=o(r,[["render",d]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as l,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1775571225000}'),r={name:"developer/l10n.md"};function d(n,e,i,c,s,_){return a(),l("div",null,e[0]||(e[0]=[t("",5)]))}const m=o(r,[["render",d]]);export{h as __pageData,m as default};
|
||||
import{_ as o,c as l,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1775621851000}'),r={name:"developer/l10n.md"};function d(n,e,i,c,s,_){return a(),l("div",null,e[0]||(e[0]=[t("",5)]))}const m=o(r,[["render",d]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as n}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1775571225000}'),a={name:"en/developer/index.md"};function o(l,r,i,p,c,m){return n(),t("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
|
||||
import{_ as e,c as t,o as n}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1775621851000}'),a={name:"en/developer/index.md"};function o(l,r,i,p,c,m){return n(),t("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as n}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1775571225000}'),a={name:"en/developer/index.md"};function o(l,r,i,p,c,m){return n(),t("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
|
||||
import{_ as e,c as t,o as n}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1775621851000}'),a={name:"en/developer/index.md"};function o(l,r,i,p,c,m){return n(),t("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as n,o as a,ag as o}from"./chunks/framework.QPV3Ar9-.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1775571225000}'),i={name:"en/developer/l10n.md"};function l(r,e,d,c,s,u){return a(),n("div",null,e[0]||(e[0]=[o('<p><strong>You can follow these steps to support localization when developing new features</strong></p><h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h2><ol><li>You can directly use the text configuration already available in <code>/resource/l10n/en-US.toml</code> to replace the text in the new feature.</li><li>If there is new text in the new feature, please refer to the configuration text in <code>en-US.toml</code>, pull the new text into the configuration files of other languages such as <code>en-US.toml</code>, and add translations.</li></ol><h2 id="adding-a-new-localized-text-file" tabindex="-1">Adding a new localized text file <a class="header-anchor" href="#adding-a-new-localized-text-file" aria-label="Permalink to "Adding a new localized text file""></a></h2><ol><li>Add a new language text configuration in <code>/resource/l10n/</code>.</li><li>Pull existing text configurations from other languages in the new language text configuration.</li><li>Add translations for the new language text configuration.</li></ol>',5)]))}const h=t(i,[["render",l]]);export{g as __pageData,h as default};
|
||||
import{_ as t,c as n,o as a,ag as o}from"./chunks/framework.QPV3Ar9-.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1775621851000}'),i={name:"en/developer/l10n.md"};function l(r,e,d,c,s,u){return a(),n("div",null,e[0]||(e[0]=[o('<p><strong>You can follow these steps to support localization when developing new features</strong></p><h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h2><ol><li>You can directly use the text configuration already available in <code>/resource/l10n/en-US.toml</code> to replace the text in the new feature.</li><li>If there is new text in the new feature, please refer to the configuration text in <code>en-US.toml</code>, pull the new text into the configuration files of other languages such as <code>en-US.toml</code>, and add translations.</li></ol><h2 id="adding-a-new-localized-text-file" tabindex="-1">Adding a new localized text file <a class="header-anchor" href="#adding-a-new-localized-text-file" aria-label="Permalink to "Adding a new localized text file""></a></h2><ol><li>Add a new language text configuration in <code>/resource/l10n/</code>.</li><li>Pull existing text configurations from other languages in the new language text configuration.</li><li>Add translations for the new language text configuration.</li></ol>',5)]))}const h=t(i,[["render",l]]);export{g as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as n,o as a,ag as o}from"./chunks/framework.QPV3Ar9-.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1775571225000}'),i={name:"en/developer/l10n.md"};function l(r,e,d,c,s,u){return a(),n("div",null,e[0]||(e[0]=[o("",5)]))}const h=t(i,[["render",l]]);export{g as __pageData,h as default};
|
||||
import{_ as t,c as n,o as a,ag as o}from"./chunks/framework.QPV3Ar9-.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1775621851000}'),i={name:"en/developer/l10n.md"};function l(r,e,d,c,s,u){return a(),n("div",null,e[0]||(e[0]=[o("",5)]))}const h=t(i,[["render",l]]);export{g as __pageData,h as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as a,o as d,j as t,a as r}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"To be developed, stay tuned","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_docker.md","filePath":"en/guide/block/block_docker.md","lastUpdated":1775571225000}'),n={name:"en/guide/block/block_docker.md"};function l(s,e,c,i,p,b){return d(),a("div",null,e[0]||(e[0]=[t("h1",{id:"to-be-developed-stay-tuned",tabindex:"-1"},[r("To be developed, stay tuned "),t("a",{class:"header-anchor",href:"#to-be-developed-stay-tuned","aria-label":'Permalink to "To be developed, stay tuned"'},"")],-1)]))}const _=o(n,[["render",l]]);export{u as __pageData,_ as default};
|
||||
import{_ as o,c as a,o as d,j as t,a as r}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"To be developed, stay tuned","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_docker.md","filePath":"en/guide/block/block_docker.md","lastUpdated":1775621851000}'),n={name:"en/guide/block/block_docker.md"};function l(s,e,c,i,p,b){return d(),a("div",null,e[0]||(e[0]=[t("h1",{id:"to-be-developed-stay-tuned",tabindex:"-1"},[r("To be developed, stay tuned "),t("a",{class:"header-anchor",href:"#to-be-developed-stay-tuned","aria-label":'Permalink to "To be developed, stay tuned"'},"")],-1)]))}const _=o(n,[["render",l]]);export{u as __pageData,_ as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as a,o as d,j as t,a as r}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"To be developed, stay tuned","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_docker.md","filePath":"en/guide/block/block_docker.md","lastUpdated":1775571225000}'),n={name:"en/guide/block/block_docker.md"};function l(s,e,c,i,p,b){return d(),a("div",null,e[0]||(e[0]=[t("h1",{id:"to-be-developed-stay-tuned",tabindex:"-1"},[r("To be developed, stay tuned "),t("a",{class:"header-anchor",href:"#to-be-developed-stay-tuned","aria-label":'Permalink to "To be developed, stay tuned"'},"")],-1)]))}const _=o(n,[["render",l]]);export{u as __pageData,_ as default};
|
||||
import{_ as o,c as a,o as d,j as t,a as r}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"To be developed, stay tuned","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_docker.md","filePath":"en/guide/block/block_docker.md","lastUpdated":1775621851000}'),n={name:"en/guide/block/block_docker.md"};function l(s,e,c,i,p,b){return d(),a("div",null,e[0]||(e[0]=[t("h1",{id:"to-be-developed-stay-tuned",tabindex:"-1"},[r("To be developed, stay tuned "),t("a",{class:"header-anchor",href:"#to-be-developed-stay-tuned","aria-label":'Permalink to "To be developed, stay tuned"'},"")],-1)]))}const _=o(n,[["render",l]]);export{u as __pageData,_ as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as s,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Blocking Abusive Behavior via Shell Scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_incus.md","filePath":"en/guide/block/block_incus.md","lastUpdated":1775571225000}'),t={name:"en/guide/block/block_incus.md"};function o(l,i,r,p,h,c){return e(),a("div",null,i[0]||(i[0]=[n("",9)]))}const m=s(t,[["render",o]]);export{k as __pageData,m as default};
|
||||
import{_ as s,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Blocking Abusive Behavior via Shell Scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_incus.md","filePath":"en/guide/block/block_incus.md","lastUpdated":1775621851000}'),t={name:"en/guide/block/block_incus.md"};function o(l,i,r,p,h,c){return e(),a("div",null,i[0]||(i[0]=[n("",9)]))}const m=s(t,[["render",o]]);export{k as __pageData,m as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as n,ag as l}from"./chunks/framework.QPV3Ar9-.js";const o=JSON.parse('{"title":"Blocking abuse through iptables","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_iptables.md","filePath":"en/guide/block/block_iptables.md","lastUpdated":1775571225000}'),e={name:"en/guide/block/block_iptables.md"};function p(t,s,h,k,r,F){return n(),a("div",null,s[0]||(s[0]=[l("",38)]))}const u=i(e,[["render",p]]);export{o as __pageData,u as default};
|
||||
import{_ as i,c as a,o as n,ag as l}from"./chunks/framework.QPV3Ar9-.js";const o=JSON.parse('{"title":"Blocking abuse through iptables","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_iptables.md","filePath":"en/guide/block/block_iptables.md","lastUpdated":1775621851000}'),e={name:"en/guide/block/block_iptables.md"};function p(t,s,h,k,r,F){return n(),a("div",null,s[0]||(s[0]=[l("",38)]))}const u=i(e,[["render",p]]);export{o as __pageData,u as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as s,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Blocking Abusive Behavior via Shell Scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_lxd.md","filePath":"en/guide/block/block_lxd.md","lastUpdated":1775571225000}'),t={name:"en/guide/block/block_lxd.md"};function o(l,i,r,p,h,c){return e(),a("div",null,i[0]||(i[0]=[n("",9)]))}const m=s(t,[["render",o]]);export{k as __pageData,m as default};
|
||||
import{_ as s,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Blocking Abusive Behavior via Shell Scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_lxd.md","filePath":"en/guide/block/block_lxd.md","lastUpdated":1775621851000}'),t={name:"en/guide/block/block_lxd.md"};function o(l,i,r,p,h,c){return e(),a("div",null,i[0]||(i[0]=[n("",9)]))}const m=s(t,[["render",o]]);export{k as __pageData,m as default};
|
||||
@@ -1,3 +1,3 @@
|
||||
import{_ as t,c as s,o as i,ag as a}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Avoid theft by setting up a firewall to limit the IPs used by the VMs","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_pve.md","filePath":"en/guide/block/block_pve.md","lastUpdated":1775571225000}'),n={name:"en/guide/block/block_pve.md"};function l(o,e,r,h,p,d){return i(),s("div",null,e[0]||(e[0]=[a(`<h1 id="avoid-theft-by-setting-up-a-firewall-to-limit-the-ips-used-by-the-vms" tabindex="-1">Avoid theft by setting up a firewall to limit the IPs used by the VMs <a class="header-anchor" href="#avoid-theft-by-setting-up-a-firewall-to-limit-the-ips-used-by-the-vms" aria-label="Permalink to "Avoid theft by setting up a firewall to limit the IPs used by the VMs""></a></h1><p>Create the following file under the PVE's host machine</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">/etc/pve/firewall/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"><VMID>.fw</span></span>
|
||||
import{_ as t,c as s,o as i,ag as a}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Avoid theft by setting up a firewall to limit the IPs used by the VMs","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_pve.md","filePath":"en/guide/block/block_pve.md","lastUpdated":1775621851000}'),n={name:"en/guide/block/block_pve.md"};function l(o,e,r,h,p,d){return i(),s("div",null,e[0]||(e[0]=[a(`<h1 id="avoid-theft-by-setting-up-a-firewall-to-limit-the-ips-used-by-the-vms" tabindex="-1">Avoid theft by setting up a firewall to limit the IPs used by the VMs <a class="header-anchor" href="#avoid-theft-by-setting-up-a-firewall-to-limit-the-ips-used-by-the-vms" aria-label="Permalink to "Avoid theft by setting up a firewall to limit the IPs used by the VMs""></a></h1><p>Create the following file under the PVE's host machine</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">/etc/pve/firewall/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"><VMID>.fw</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[IPSET ipfilter-</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">net0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">xxx.xxx.xxx.xxx</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><p><code><VMID></code> is replaced with the VMID number of the virtual machine, <code><net0></code> is replaced with the corresponding alias in the network device (which generally doesn't need to be changed unless you're restricted to IPV6), and <code>xxx.xxx.xxx.xxx</code> is replaced with the public IP address, noting that this IP corresponds to the network device in front of it.</p><p>The idea here is that net0 can only use the IP xxx.xxx.xxx.xxx, if you use any other IP the data will be dropped, thus restricting the VM to only use this IP.</p><p>There can be more than one IP, once this rule is enabled the VM can't use any other IP, if you don't write an IPv6 address it means the VM can't use an IPv6 address.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This setting is only recommended when opening <strong>VMs</strong> with separate IPs that are not NAT full port mapped, otherwise it may cause strange issues resulting in the server being without a network.</p></div><p>This method <strong>is not suitable</strong> for use on PVEs that open any NAT VMs/containers.</p>`,8)]))}const g=t(n,[["render",l]]);export{u as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as s,o as i,ag as a}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Avoid theft by setting up a firewall to limit the IPs used by the VMs","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_pve.md","filePath":"en/guide/block/block_pve.md","lastUpdated":1775571225000}'),n={name:"en/guide/block/block_pve.md"};function l(o,e,r,h,p,d){return i(),s("div",null,e[0]||(e[0]=[a("",8)]))}const g=t(n,[["render",l]]);export{u as __pageData,g as default};
|
||||
import{_ as t,c as s,o as i,ag as a}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Avoid theft by setting up a firewall to limit the IPs used by the VMs","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/block/block_pve.md","filePath":"en/guide/block/block_pve.md","lastUpdated":1775621851000}'),n={name:"en/guide/block/block_pve.md"};function l(o,e,r,h,p,d){return i(),s("div",null,e[0]||(e[0]=[a("",8)]))}const g=t(n,[["render",l]]);export{u as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_build.md","filePath":"en/guide/containerd/containerd_build.md","lastUpdated":1775571225000}'),t={name:"en/guide/containerd/containerd_build.md"};function l(r,s,p,h,d,k){return n(),a("div",null,s[0]||(s[0]=[e("",47)]))}const g=i(t,[["render",l]]);export{c as __pageData,g as default};
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_build.md","filePath":"en/guide/containerd/containerd_build.md","lastUpdated":1775621851000}'),t={name:"en/guide/containerd/containerd_build.md"};function l(r,s,p,h,d,k){return n(),a("div",null,s[0]||(s[0]=[e("",47)]))}const g=i(t,[["render",l]]);export{c as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as s,c as e,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_install.md","filePath":"en/guide/containerd/containerd_install.md","lastUpdated":1775571225000}'),t={name:"en/guide/containerd/containerd_install.md"};function l(r,i,p,h,d,c){return a(),e("div",null,i[0]||(i[0]=[n("",21)]))}const k=s(t,[["render",l]]);export{u as __pageData,k as default};
|
||||
import{_ as s,c as e,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_install.md","filePath":"en/guide/containerd/containerd_install.md","lastUpdated":1775621851000}'),t={name:"en/guide/containerd/containerd_install.md"};function l(r,i,p,h,d,c){return a(),e("div",null,i[0]||(i[0]=[n("",21)]))}const k=s(t,[["render",l]]);export{u as __pageData,k as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as r,o as i,ag as n}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_precheck.md","filePath":"en/guide/containerd/containerd_precheck.md","lastUpdated":1775571225000}'),a={name:"en/guide/containerd/containerd_precheck.md"};function o(s,t,d,l,c,u){return i(),r("div",null,t[0]||(t[0]=[n('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don't confuse them with the customized parts.</p><p>If your host does not have an IPv6 subnet and you want to assign IPv6 addresses to containers, the host itself needs a public IPv6 address. The installation script will automatically detect and configure this.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The containerd solution <strong>does not support KVM/QEMU virtual machines</strong>. It only supports Linux containers (LXC) and is suitable for environments without KVM hardware virtualization support.</p></div><p>Feel free to give the project a <code>Star</code> for free support! --> <a href="https://github.com/oneclickvirt/containerd" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/containerd</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><p>Bulk or individual NAT server provisioning based on containerd + nerdctl runtime</p><ul><li>Installs containerd + runc + nerdctl + CNI + buildkitd via the <a href="https://github.com/containerd/nerdctl" target="_blank" rel="noreferrer">nerdctl-full</a> bundle</li><li>Uses self-compiled base images (stored in GitHub Releases), with offline loading prioritized and fallback to official images</li><li>Each container comes with 1 external SSH port, 25 consistent internal/external ports, with optional independent IPv6 address binding</li><li>Default unprivileged containers, supports lxcfs mounting (if lxcfs is installed on the host)</li><li>Supports disk limit parameters (requires xfs/btrfs snapshotter with storage-opt support)</li><li>Supports China CDN acceleration</li></ul><h2 id="supported-systems" tabindex="-1">Supported Systems <a class="header-anchor" href="#supported-systems" aria-label="Permalink to "Supported Systems""></a></h2><table tabindex="0"><thead><tr><th>System</th><th>amd64</th><th>arm64</th></tr></thead><tbody><tr><td>Ubuntu 22.04</td><td>✓</td><td>✓</td></tr><tr><td>Debian 12</td><td>✓</td><td>✓</td></tr><tr><td>Alpine latest</td><td>✓</td><td>✓</td></tr><tr><td>AlmaLinux 9</td><td>✓</td><td>✓</td></tr><tr><td>RockyLinux 9</td><td>✓</td><td>✓</td></tr><tr><td>OpenEuler 22.03</td><td>✓</td><td>✓</td></tr></tbody></table><h2 id="configuration-requirements" tabindex="-1">Configuration Requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to "Configuration Requirements""></a></h2><ul><li>Host OS: Ubuntu, Debian, RockyLinux 9+, AlmaLinux 9+, CentOS 9+, Alpine, Arch</li><li>Architecture: x86_64 (amd64) or ARM64</li><li>Kernel must support overlay filesystem</li><li>Network must be able to connect to GitHub raw interface</li><li>At least 3GB free disk space</li><li><strong>No KVM hardware support required</strong></li></ul>',12)]))}const m=e(a,[["render",o]]);export{h as __pageData,m as default};
|
||||
import{_ as e,c as r,o as i,ag as n}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_precheck.md","filePath":"en/guide/containerd/containerd_precheck.md","lastUpdated":1775621851000}'),a={name:"en/guide/containerd/containerd_precheck.md"};function o(s,t,d,l,c,u){return i(),r("div",null,t[0]||(t[0]=[n('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don't confuse them with the customized parts.</p><p>If your host does not have an IPv6 subnet and you want to assign IPv6 addresses to containers, the host itself needs a public IPv6 address. The installation script will automatically detect and configure this.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The containerd solution <strong>does not support KVM/QEMU virtual machines</strong>. It only supports Linux containers (LXC) and is suitable for environments without KVM hardware virtualization support.</p></div><p>Feel free to give the project a <code>Star</code> for free support! --> <a href="https://github.com/oneclickvirt/containerd" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/containerd</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><p>Bulk or individual NAT server provisioning based on containerd + nerdctl runtime</p><ul><li>Installs containerd + runc + nerdctl + CNI + buildkitd via the <a href="https://github.com/containerd/nerdctl" target="_blank" rel="noreferrer">nerdctl-full</a> bundle</li><li>Uses self-compiled base images (stored in GitHub Releases), with offline loading prioritized and fallback to official images</li><li>Each container comes with 1 external SSH port, 25 consistent internal/external ports, with optional independent IPv6 address binding</li><li>Default unprivileged containers, supports lxcfs mounting (if lxcfs is installed on the host)</li><li>Supports disk limit parameters (requires xfs/btrfs snapshotter with storage-opt support)</li><li>Supports China CDN acceleration</li></ul><h2 id="supported-systems" tabindex="-1">Supported Systems <a class="header-anchor" href="#supported-systems" aria-label="Permalink to "Supported Systems""></a></h2><table tabindex="0"><thead><tr><th>System</th><th>amd64</th><th>arm64</th></tr></thead><tbody><tr><td>Ubuntu 22.04</td><td>✓</td><td>✓</td></tr><tr><td>Debian 12</td><td>✓</td><td>✓</td></tr><tr><td>Alpine latest</td><td>✓</td><td>✓</td></tr><tr><td>AlmaLinux 9</td><td>✓</td><td>✓</td></tr><tr><td>RockyLinux 9</td><td>✓</td><td>✓</td></tr><tr><td>OpenEuler 22.03</td><td>✓</td><td>✓</td></tr></tbody></table><h2 id="configuration-requirements" tabindex="-1">Configuration Requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to "Configuration Requirements""></a></h2><ul><li>Host OS: Ubuntu, Debian, RockyLinux 9+, AlmaLinux 9+, CentOS 9+, Alpine, Arch</li><li>Architecture: x86_64 (amd64) or ARM64</li><li>Kernel must support overlay filesystem</li><li>Network must be able to connect to GitHub raw interface</li><li>At least 3GB free disk space</li><li><strong>No KVM hardware support required</strong></li></ul>',12)]))}const m=e(a,[["render",o]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as r,o as i,ag as n}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_precheck.md","filePath":"en/guide/containerd/containerd_precheck.md","lastUpdated":1775571225000}'),a={name:"en/guide/containerd/containerd_precheck.md"};function o(s,t,d,l,c,u){return i(),r("div",null,t[0]||(t[0]=[n("",12)]))}const m=e(a,[["render",o]]);export{h as __pageData,m as default};
|
||||
import{_ as e,c as r,o as i,ag as n}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_precheck.md","filePath":"en/guide/containerd/containerd_precheck.md","lastUpdated":1775621851000}'),a={name:"en/guide/containerd/containerd_precheck.md"};function o(s,t,d,l,c,u){return i(),r("div",null,t[0]||(t[0]=[n("",12)]))}const m=e(a,[["render",o]]);export{h as __pageData,m as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"FAQ","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_qa.md","filePath":"en/guide/containerd/containerd_qa.md","lastUpdated":1775571225000}'),t={name:"en/guide/containerd/containerd_qa.md"};function l(h,s,p,r,d,k){return n(),a("div",null,s[0]||(s[0]=[e(`<h1 id="faq" tabindex="-1">FAQ <a class="header-anchor" href="#faq" aria-label="Permalink to "FAQ""></a></h1><h2 id="nerdctl-command-not-found" tabindex="-1">nerdctl: command not found <a class="header-anchor" href="#nerdctl-command-not-found" aria-label="Permalink to "nerdctl: command not found""></a></h2><p>The containerd environment is not correctly installed or <code>/usr/local/bin</code> is not in PATH.</p><p>Fix:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> PATH</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"/usr/local/bin:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">$PATH</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span></span>
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"FAQ","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_qa.md","filePath":"en/guide/containerd/containerd_qa.md","lastUpdated":1775621851000}'),t={name:"en/guide/containerd/containerd_qa.md"};function l(h,s,p,r,d,k){return n(),a("div",null,s[0]||(s[0]=[e(`<h1 id="faq" tabindex="-1">FAQ <a class="header-anchor" href="#faq" aria-label="Permalink to "FAQ""></a></h1><h2 id="nerdctl-command-not-found" tabindex="-1">nerdctl: command not found <a class="header-anchor" href="#nerdctl-command-not-found" aria-label="Permalink to "nerdctl: command not found""></a></h2><p>The containerd environment is not correctly installed or <code>/usr/local/bin</code> is not in PATH.</p><p>Fix:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> PATH</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"/usr/local/bin:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">$PATH</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'export PATH="/usr/local/bin:$PATH"'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> >></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/profile</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/profile</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><p>If still not found, re-run the installation script:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -sSL</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/containerd/main/containerdinstall.sh)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><h2 id="containerd-service-not-running" tabindex="-1">containerd service not running <a class="header-anchor" href="#containerd-service-not-running" aria-label="Permalink to "containerd service not running""></a></h2><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">systemctl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> status</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containerd</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">systemctl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> restart</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containerd</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><p>View logs:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">journalctl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -u</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> containerd</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -f</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><h2 id="container-cannot-access-external-network-ipv4" tabindex="-1">Container cannot access external network (IPv4) <a class="header-anchor" href="#container-cannot-access-external-network-ipv4" aria-label="Permalink to "Container cannot access external network (IPv4)""></a></h2><p>Check if iptables NAT rules exist:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">iptables</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -t</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> nat</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> POSTROUTING</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -n</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -v</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 172.20</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>If not present, add manually:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">iptables</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -t</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> nat</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -A</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> POSTROUTING</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 172.20.0.0/16</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> !</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 172.20.0.0/16</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -j</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> MASQUERADE</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"FAQ","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_qa.md","filePath":"en/guide/containerd/containerd_qa.md","lastUpdated":1775571225000}'),t={name:"en/guide/containerd/containerd_qa.md"};function l(h,s,p,r,d,k){return n(),a("div",null,s[0]||(s[0]=[e("",39)]))}const F=i(t,[["render",l]]);export{c as __pageData,F as default};
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"FAQ","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/containerd/containerd_qa.md","filePath":"en/guide/containerd/containerd_qa.md","lastUpdated":1775621851000}'),t={name:"en/guide/containerd/containerd_qa.md"};function l(h,s,p,r,d,k){return n(),a("div",null,s[0]||(s[0]=[e("",39)]))}const F=i(t,[["render",l]]);export{c as __pageData,F as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as r,o as n,ag as a}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/containerd/containerd_thanks.md","filePath":"en/guide/containerd/containerd_thanks.md","lastUpdated":1775571225000}'),o={name:"en/guide/containerd/containerd_thanks.md"};function i(c,t,s,p,h,d){return n(),r("div",null,t[0]||(t[0]=[a('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/containerd/nerdctl" target="_blank" rel="noreferrer">https://github.com/containerd/nerdctl</a></p><p><a href="https://github.com/containerd/containerd" target="_blank" rel="noreferrer">https://github.com/containerd/containerd</a></p><p><a href="https://github.com/opencontainers/runc" target="_blank" rel="noreferrer">https://github.com/opencontainers/runc</a></p><p><a href="https://github.com/containernetworking/cni" target="_blank" rel="noreferrer">https://github.com/containernetworking/cni</a></p><p><a href="https://github.com/moby/buildkit" target="_blank" rel="noreferrer">https://github.com/moby/buildkit</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/lxc/lxcfs" target="_blank" rel="noreferrer">https://github.com/lxc/lxcfs</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p>',9)]))}const g=e(o,[["render",i]]);export{u as __pageData,g as default};
|
||||
import{_ as e,c as r,o as n,ag as a}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/containerd/containerd_thanks.md","filePath":"en/guide/containerd/containerd_thanks.md","lastUpdated":1775621851000}'),o={name:"en/guide/containerd/containerd_thanks.md"};function i(c,t,s,p,h,d){return n(),r("div",null,t[0]||(t[0]=[a('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/containerd/nerdctl" target="_blank" rel="noreferrer">https://github.com/containerd/nerdctl</a></p><p><a href="https://github.com/containerd/containerd" target="_blank" rel="noreferrer">https://github.com/containerd/containerd</a></p><p><a href="https://github.com/opencontainers/runc" target="_blank" rel="noreferrer">https://github.com/opencontainers/runc</a></p><p><a href="https://github.com/containernetworking/cni" target="_blank" rel="noreferrer">https://github.com/containernetworking/cni</a></p><p><a href="https://github.com/moby/buildkit" target="_blank" rel="noreferrer">https://github.com/moby/buildkit</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/lxc/lxcfs" target="_blank" rel="noreferrer">https://github.com/lxc/lxcfs</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p>',9)]))}const g=e(o,[["render",i]]);export{u as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as r,o as n,ag as a}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/containerd/containerd_thanks.md","filePath":"en/guide/containerd/containerd_thanks.md","lastUpdated":1775571225000}'),o={name:"en/guide/containerd/containerd_thanks.md"};function i(c,t,s,p,h,d){return n(),r("div",null,t[0]||(t[0]=[a("",9)]))}const g=e(o,[["render",i]]);export{u as __pageData,g as default};
|
||||
import{_ as e,c as r,o as n,ag as a}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/containerd/containerd_thanks.md","filePath":"en/guide/containerd/containerd_thanks.md","lastUpdated":1775621851000}'),o={name:"en/guide/containerd/containerd_thanks.md"};function i(c,t,s,p,h,d){return n(),r("div",null,t[0]||(t[0]=[a("",9)]))}const g=e(o,[["render",i]]);export{u as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as t,c as a,o as r,ag as i}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/dashboard.md","filePath":"en/guide/dashboard.md","lastUpdated":1775571225000}'),o={name:"en/guide/dashboard.md"};function n(l,e,s,c,h,p){return r(),a("div",null,e[0]||(e[0]=[i("",35)]))}const u=t(o,[["render",n]]);export{m as __pageData,u as default};
|
||||
import{_ as t,c as a,o as r,ag as i}from"./chunks/framework.QPV3Ar9-.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/dashboard.md","filePath":"en/guide/dashboard.md","lastUpdated":1775621851000}'),o={name:"en/guide/dashboard.md"};function n(l,e,s,c,h,p){return r(),a("div",null,e[0]||(e[0]=[i("",35)]))}const u=t(o,[["render",n]]);export{m as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as s,o as t,ag as i}from"./chunks/framework.QPV3Ar9-.js";const p="/assets/wechat.BhfskdFa.jpg",m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1775571225000}'),n={name:"en/guide/dashboardq.md"};function r(d,e,l,o,c,h){return t(),s("div",null,e[0]||(e[0]=[i('<p>Give me a cup of coffee.</p><p><a href="https://ko-fi.com/spiritlhl" target="_blank" rel="noreferrer">https://ko-fi.com/spiritlhl</a></p><p>WeChat</p><p><img src="'+p+'" alt="WeChat" loading="lazy"></p><p>USDT-TRC20</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">TNqjaPYAmDsm9pbpLY79pixE8z1ce3Zj1B</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>USDT-Polygon/Matic</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">0xb81b44cb00f9e6e084f85e5da604ec479e7ffab6</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div>',8)]))}const u=a(n,[["render",r]]);export{m as __pageData,u as default};
|
||||
import{_ as a,c as s,o as t,ag as i}from"./chunks/framework.QPV3Ar9-.js";const p="/assets/wechat.BhfskdFa.jpg",m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1775621851000}'),n={name:"en/guide/dashboardq.md"};function r(d,e,l,o,c,h){return t(),s("div",null,e[0]||(e[0]=[i('<p>Give me a cup of coffee.</p><p><a href="https://ko-fi.com/spiritlhl" target="_blank" rel="noreferrer">https://ko-fi.com/spiritlhl</a></p><p>WeChat</p><p><img src="'+p+'" alt="WeChat" loading="lazy"></p><p>USDT-TRC20</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">TNqjaPYAmDsm9pbpLY79pixE8z1ce3Zj1B</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>USDT-Polygon/Matic</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">0xb81b44cb00f9e6e084f85e5da604ec479e7ffab6</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div>',8)]))}const u=a(n,[["render",r]]);export{m as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as s,o as t,ag as i}from"./chunks/framework.QPV3Ar9-.js";const p="/assets/wechat.BhfskdFa.jpg",m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1775571225000}'),n={name:"en/guide/dashboardq.md"};function r(d,e,l,o,c,h){return t(),s("div",null,e[0]||(e[0]=[i("",8)]))}const u=a(n,[["render",r]]);export{m as __pageData,u as default};
|
||||
import{_ as a,c as s,o as t,ag as i}from"./chunks/framework.QPV3Ar9-.js";const p="/assets/wechat.BhfskdFa.jpg",m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1775621851000}'),n={name:"en/guide/dashboardq.md"};function r(d,e,l,o,c,h){return t(),s("div",null,e[0]||(e[0]=[i("",8)]))}const u=a(n,[["render",r]]);export{m as __pageData,u as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as s,o as n,ag as a}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Running Android Virtual Machine in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_android.md","filePath":"en/guide/docker/docker_android.md","lastUpdated":1775571225000}'),t={name:"en/guide/docker/docker_android.md"};function r(o,i,l,h,d,p){return n(),s("div",null,i[0]||(i[0]=[a("",22)]))}const g=e(t,[["render",r]]);export{k as __pageData,g as default};
|
||||
import{_ as e,c as s,o as n,ag as a}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Running Android Virtual Machine in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_android.md","filePath":"en/guide/docker/docker_android.md","lastUpdated":1775621851000}'),t={name:"en/guide/docker/docker_android.md"};function r(o,i,l,h,d,p){return n(),s("div",null,i[0]||(i[0]=[a("",22)]))}const g=e(t,[["render",r]]);export{k as __pageData,g as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_build.md","filePath":"en/guide/docker/docker_build.md","lastUpdated":1775571225000}'),t={name:"en/guide/docker/docker_build.md"};function l(h,s,r,p,d,o){return e(),a("div",null,s[0]||(s[0]=[n("",51)]))}const F=i(t,[["render",l]]);export{c as __pageData,F as default};
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_build.md","filePath":"en/guide/docker/docker_build.md","lastUpdated":1775621851000}'),t={name:"en/guide/docker/docker_build.md"};function l(h,s,r,p,d,o){return e(),a("div",null,s[0]||(s[0]=[n("",51)]))}const F=i(t,[["render",l]]);export{c as __pageData,F as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as e,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Script for One-Click Installation of Certain Containers using Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_custom.md","filePath":"en/guide/docker/docker_custom.md","lastUpdated":1775571225000}'),t={name:"en/guide/docker/docker_custom.md"};function l(o,s,r,p,h,d){return a(),e("div",null,s[0]||(s[0]=[n(`<h1 id="script-for-one-click-installation-of-certain-containers-using-docker" tabindex="-1">Script for One-Click Installation of Certain Containers using Docker <a class="header-anchor" href="#script-for-one-click-installation-of-certain-containers-using-docker" aria-label="Permalink to "Script for One-Click Installation of Certain Containers using Docker""></a></h1><p>Each container has specific configuration requirements; please refer to them individually.</p><p>If the configured memory is not enough, then it's okay to make up for it with the virtual memory <a href="https://virt.spiritlhl.net/en_US/guide/docker_install.html#setting-up-virtual-memory" target="_blank" rel="noreferrer">here</a>.</p><p>Note that the following scripts must be pre-installed using the environment installation scripts in this set of tutorials before using them</p><h2 id="one-click-setup-of-firefox-browser-container" tabindex="-1">One-Click Setup of Firefox Browser Container <a class="header-anchor" href="#one-click-setup-of-firefox-browser-container" aria-label="Permalink to "One-Click Setup of Firefox Browser Container""></a></h2><ul><li>Crash recovery on startup has been configured.</li><li>Chinese fonts have been integrated into the container.</li><li>Built-in web validation with the option to set a custom password.</li><li>Maximum memory usage for the container is customizable.</li><li>Choice to enable VNC port, disabled by default.</li><li>No need to consider support for nested virtualization or server architecture.</li><li>Audio mapping is not supported; sound transmission is unavailable on both the web and VNC.</li></ul><p><strong>The host machine should have at least 1 core, 1GB RAM, and 5GB disk space. The created container will occupy a minimum of 1GB disk space.</strong></p><p><strong>Setup:</strong></p><p>After setup, the default password is <code>oneclick</code>.</p><p>The default web port is <code>3003</code>. Once the setup is complete, simply open <code>HOST_IPV4:PORT</code> in your browser.</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/onefirefox.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><strong>Deletion</strong></p><p>Modify the following port number <code>3003</code> to your actual port number, and then execute the command to delete the container, configuration file, and corresponding image</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">PORT</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"3003"</span></span>
|
||||
import{_ as i,c as e,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Script for One-Click Installation of Certain Containers using Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_custom.md","filePath":"en/guide/docker/docker_custom.md","lastUpdated":1775621851000}'),t={name:"en/guide/docker/docker_custom.md"};function l(o,s,r,p,h,d){return a(),e("div",null,s[0]||(s[0]=[n(`<h1 id="script-for-one-click-installation-of-certain-containers-using-docker" tabindex="-1">Script for One-Click Installation of Certain Containers using Docker <a class="header-anchor" href="#script-for-one-click-installation-of-certain-containers-using-docker" aria-label="Permalink to "Script for One-Click Installation of Certain Containers using Docker""></a></h1><p>Each container has specific configuration requirements; please refer to them individually.</p><p>If the configured memory is not enough, then it's okay to make up for it with the virtual memory <a href="https://virt.spiritlhl.net/en_US/guide/docker_install.html#setting-up-virtual-memory" target="_blank" rel="noreferrer">here</a>.</p><p>Note that the following scripts must be pre-installed using the environment installation scripts in this set of tutorials before using them</p><h2 id="one-click-setup-of-firefox-browser-container" tabindex="-1">One-Click Setup of Firefox Browser Container <a class="header-anchor" href="#one-click-setup-of-firefox-browser-container" aria-label="Permalink to "One-Click Setup of Firefox Browser Container""></a></h2><ul><li>Crash recovery on startup has been configured.</li><li>Chinese fonts have been integrated into the container.</li><li>Built-in web validation with the option to set a custom password.</li><li>Maximum memory usage for the container is customizable.</li><li>Choice to enable VNC port, disabled by default.</li><li>No need to consider support for nested virtualization or server architecture.</li><li>Audio mapping is not supported; sound transmission is unavailable on both the web and VNC.</li></ul><p><strong>The host machine should have at least 1 core, 1GB RAM, and 5GB disk space. The created container will occupy a minimum of 1GB disk space.</strong></p><p><strong>Setup:</strong></p><p>After setup, the default password is <code>oneclick</code>.</p><p>The default web port is <code>3003</code>. Once the setup is complete, simply open <code>HOST_IPV4:PORT</code> in your browser.</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/onefirefox.sh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> +x</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">bash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> onefirefox.sh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><strong>Deletion</strong></p><p>Modify the following port number <code>3003</code> to your actual port number, and then execute the command to delete the container, configuration file, and corresponding image</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">PORT</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"3003"</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> stop</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> firefox_</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">\${PORT}</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rm</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> firefox_</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">\${PORT}</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">rm</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -rf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /usr/local/bin/firefox_</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">\${PORT}</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as i,c as e,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Script for One-Click Installation of Certain Containers using Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_custom.md","filePath":"en/guide/docker/docker_custom.md","lastUpdated":1775571225000}'),t={name:"en/guide/docker/docker_custom.md"};function l(o,s,r,p,h,d){return a(),e("div",null,s[0]||(s[0]=[n("",52)]))}const u=i(t,[["render",l]]);export{k as __pageData,u as default};
|
||||
import{_ as i,c as e,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Script for One-Click Installation of Certain Containers using Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_custom.md","filePath":"en/guide/docker/docker_custom.md","lastUpdated":1775621851000}'),t={name:"en/guide/docker/docker_custom.md"};function l(o,s,r,p,h,d){return a(),e("div",null,s[0]||(s[0]=[n("",52)]))}const u=i(t,[["render",l]]);export{k as __pageData,u as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_install.md","filePath":"en/guide/docker/docker_install.md","lastUpdated":1775571225000}'),n={name:"en/guide/docker/docker_install.md"};function l(r,s,h,p,o,d){return a(),e("div",null,s[0]||(s[0]=[t("",27)]))}const u=i(n,[["render",l]]);export{k as __pageData,u as default};
|
||||
import{_ as i,c as e,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_install.md","filePath":"en/guide/docker/docker_install.md","lastUpdated":1775621851000}'),n={name:"en/guide/docker/docker_install.md"};function l(r,s,h,p,o,d){return a(),e("div",null,s[0]||(s[0]=[t("",27)]))}const u=i(n,[["render",l]]);export{k as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as r,o,ag as c}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Running macOS Virtual Machines in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_macos.md","filePath":"en/guide/docker/docker_macos.md","lastUpdated":1775571225000}'),n={name:"en/guide/docker/docker_macos.md"};function t(i,e,s,d,u,l){return o(),r("div",null,e[0]||(e[0]=[c('<h1 id="running-macos-virtual-machines-in-docker" tabindex="-1">Running macOS Virtual Machines in Docker <a class="header-anchor" href="#running-macos-virtual-machines-in-docker" aria-label="Permalink to "Running macOS Virtual Machines in Docker""></a></h1><h2 id="using-dockur" tabindex="-1">Using Dockur <a class="header-anchor" href="#using-dockur" aria-label="Permalink to "Using Dockur""></a></h2><p>Original Project:</p><p><a href="https://github.com/dockur/macos" target="_blank" rel="noreferrer">https://github.com/dockur/macos</a></p><h2 id="using-docker-osx" tabindex="-1">Using Docker-OSX <a class="header-anchor" href="#using-docker-osx" aria-label="Permalink to "Using Docker-OSX""></a></h2><p>Original Project:</p><p><a href="https://github.com/sickcodes/Docker-OSX" target="_blank" rel="noreferrer">https://github.com/sickcodes/Docker-OSX</a></p>',7)]))}const m=a(n,[["render",t]]);export{h as __pageData,m as default};
|
||||
import{_ as a,c as r,o,ag as c}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Running macOS Virtual Machines in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_macos.md","filePath":"en/guide/docker/docker_macos.md","lastUpdated":1775621851000}'),n={name:"en/guide/docker/docker_macos.md"};function t(i,e,s,d,u,l){return o(),r("div",null,e[0]||(e[0]=[c('<h1 id="running-macos-virtual-machines-in-docker" tabindex="-1">Running macOS Virtual Machines in Docker <a class="header-anchor" href="#running-macos-virtual-machines-in-docker" aria-label="Permalink to "Running macOS Virtual Machines in Docker""></a></h1><h2 id="using-dockur" tabindex="-1">Using Dockur <a class="header-anchor" href="#using-dockur" aria-label="Permalink to "Using Dockur""></a></h2><p>Original Project:</p><p><a href="https://github.com/dockur/macos" target="_blank" rel="noreferrer">https://github.com/dockur/macos</a></p><h2 id="using-docker-osx" tabindex="-1">Using Docker-OSX <a class="header-anchor" href="#using-docker-osx" aria-label="Permalink to "Using Docker-OSX""></a></h2><p>Original Project:</p><p><a href="https://github.com/sickcodes/Docker-OSX" target="_blank" rel="noreferrer">https://github.com/sickcodes/Docker-OSX</a></p>',7)]))}const m=a(n,[["render",t]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as r,o,ag as c}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Running macOS Virtual Machines in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_macos.md","filePath":"en/guide/docker/docker_macos.md","lastUpdated":1775571225000}'),n={name:"en/guide/docker/docker_macos.md"};function t(i,e,s,d,u,l){return o(),r("div",null,e[0]||(e[0]=[c("",7)]))}const m=a(n,[["render",t]]);export{h as __pageData,m as default};
|
||||
import{_ as a,c as r,o,ag as c}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Running macOS Virtual Machines in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_macos.md","filePath":"en/guide/docker/docker_macos.md","lastUpdated":1775621851000}'),n={name:"en/guide/docker/docker_macos.md"};function t(i,e,s,d,u,l){return o(),r("div",null,e[0]||(e[0]=[c("",7)]))}const m=a(n,[["render",t]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as o,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const p=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1775571225000}'),r={name:"en/guide/docker/docker_precheck.md"};function i(s,e,c,h,d,u){return a(),o("div",null,e[0]||(e[0]=[n('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don't confuse them with the customized parts.</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>incus</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If the host has an IPV6 network, the installation will change the network structure of the host, please make sure that the host can reset the system at any time and that there is no important data on the host before running.</p></div><p>Feel free to give the project a <code>Star</code> for free support!--><a href="https://github.com/oneclickvirt/docker" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/docker</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><p>Bulk or individual NAT server provisioning via docker</p><p>Default use of debian system optional alpine system, each container comes with 1 external ssh port, 25 internal and external network ports, you can choose whether to bind IPV6 address</p><p>The default creation of unprivileged containers, and does not mount and host docker daemon communication, so ** host created docker virtualization NAT servers can not be nested within the virtualization docker **</p><p>By default, lxcfs is installed and enabled, so that when querying resources within a container, CPU and memory use the configured view instead of the host's view.</p><p>By default, you can choose whether or not to share the hard disk of the host machine, and you can choose whether or not to install it as an environment that can limit the size of the hard disk during Docker installation.</p><h2 id="configuration-requirements" tabindex="-1">Configuration requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to "Configuration requirements""></a></h2><p>The system can be installed docker can be used, the network can connect to the Github raw interface can be used, hardware configuration as long as not pull across the line, free hard disk has 3G on it!</p><p>(If you need to bind an IPV6 address, then please make sure to use the installation script of this set of scripts for docker installation, you need it to automatically preset some of the settings)</p><p>If the hardware resources are just a little bit better, need to limit more things and need to limit the size of the hard disk, you can use the incus partition of the script batch open LXC virtualization containers</p><p>If the hardware is very good and you have a lot of resources, you can use the PVE partition script to batch open KVM virtualized VMs.</p>',16)]))}const f=t(r,[["render",i]]);export{p as __pageData,f as default};
|
||||
import{_ as t,c as o,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const p=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1775621851000}'),r={name:"en/guide/docker/docker_precheck.md"};function i(s,e,c,h,d,u){return a(),o("div",null,e[0]||(e[0]=[n('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don't confuse them with the customized parts.</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>incus</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If the host has an IPV6 network, the installation will change the network structure of the host, please make sure that the host can reset the system at any time and that there is no important data on the host before running.</p></div><p>Feel free to give the project a <code>Star</code> for free support!--><a href="https://github.com/oneclickvirt/docker" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/docker</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><p>Bulk or individual NAT server provisioning via docker</p><p>Default use of debian system optional alpine system, each container comes with 1 external ssh port, 25 internal and external network ports, you can choose whether to bind IPV6 address</p><p>The default creation of unprivileged containers, and does not mount and host docker daemon communication, so ** host created docker virtualization NAT servers can not be nested within the virtualization docker **</p><p>By default, lxcfs is installed and enabled, so that when querying resources within a container, CPU and memory use the configured view instead of the host's view.</p><p>By default, you can choose whether or not to share the hard disk of the host machine, and you can choose whether or not to install it as an environment that can limit the size of the hard disk during Docker installation.</p><h2 id="configuration-requirements" tabindex="-1">Configuration requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to "Configuration requirements""></a></h2><p>The system can be installed docker can be used, the network can connect to the Github raw interface can be used, hardware configuration as long as not pull across the line, free hard disk has 3G on it!</p><p>(If you need to bind an IPV6 address, then please make sure to use the installation script of this set of scripts for docker installation, you need it to automatically preset some of the settings)</p><p>If the hardware resources are just a little bit better, need to limit more things and need to limit the size of the hard disk, you can use the incus partition of the script batch open LXC virtualization containers</p><p>If the hardware is very good and you have a lot of resources, you can use the PVE partition script to batch open KVM virtualized VMs.</p>',16)]))}const f=t(r,[["render",i]]);export{p as __pageData,f as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as o,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const p=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1775571225000}'),r={name:"en/guide/docker/docker_precheck.md"};function i(s,e,c,h,d,u){return a(),o("div",null,e[0]||(e[0]=[n("",16)]))}const f=t(r,[["render",i]]);export{p as __pageData,f as default};
|
||||
import{_ as t,c as o,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const p=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1775621851000}'),r={name:"en/guide/docker/docker_precheck.md"};function i(s,e,c,h,d,u){return a(),o("div",null,e[0]||(e[0]=[n("",16)]))}const f=t(r,[["render",i]]);export{p as __pageData,f as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as s,o as n,ag as i}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_qa.md","filePath":"en/guide/docker/docker_qa.md","lastUpdated":1775571225000}'),t={name:"en/guide/docker/docker_qa.md"};function p(l,e,d,r,o,c){return n(),s("div",null,e[0]||(e[0]=[i("",28)]))}const m=a(t,[["render",p]]);export{u as __pageData,m as default};
|
||||
import{_ as a,c as s,o as n,ag as i}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_qa.md","filePath":"en/guide/docker/docker_qa.md","lastUpdated":1775621851000}'),t={name:"en/guide/docker/docker_qa.md"};function p(l,e,d,r,o,c){return n(),s("div",null,e[0]||(e[0]=[i("",28)]))}const m=a(t,[["render",p]]);export{u as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a,ag as o}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1775571225000}'),n={name:"en/guide/docker/docker_thanks.md"};function c(p,r,h,i,s,l){return a(),t("div",null,r[0]||(r[0]=[o('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://hub.docker.com/_/debian" target="_blank" rel="noreferrer">https://hub.docker.com/_/debian</a></p><p><a href="https://hub.docker.com/r/redroid/redroid" target="_blank" rel="noreferrer">https://hub.docker.com/r/redroid/redroid</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://guacamole.apache.org/doc/gug/introduction.html" target="_blank" rel="noreferrer">https://guacamole.apache.org/doc/gug/introduction.html</a></p><p><a href="https://blog.imoeq.com/oracle-arm-run-android-by-docker" target="_blank" rel="noreferrer">https://blog.imoeq.com/oracle-arm-run-android-by-docker</a></p><p><a href="https://blog.imoeq.com/scrcpy-run-a-android-web-page" target="_blank" rel="noreferrer">https://blog.imoeq.com/scrcpy-run-a-android-web-page</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/" target="_blank" rel="noreferrer">https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/</a></p><p><a href="https://releases.hashicorp.com/vagrant/" target="_blank" rel="noreferrer">https://releases.hashicorp.com/vagrant/</a></p><p><a href="https://github.com/hashicorp/vagrant/" target="_blank" rel="noreferrer">https://github.com/hashicorp/vagrant/</a></p><p><a href="https://app.vagrantup.com/peru" target="_blank" rel="noreferrer">https://app.vagrantup.com/peru</a></p><p><a href="https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1" target="_blank" rel="noreferrer">https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1</a></p><p><a href="https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4" target="_blank" rel="noreferrer">https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4</a></p><p><a href="https://github.com/jlesage/docker-firefox" target="_blank" rel="noreferrer">https://github.com/jlesage/docker-firefox</a></p><p><a href="https://github.com/linuxserver/docker-webtop" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-webtop</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/linuxserver/docker-chromium" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-chromium</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> and @CoiaPrant for providing docker guidance.</p>',20)]))}const u=e(n,[["render",c]]);export{d as __pageData,u as default};
|
||||
import{_ as e,c as t,o as a,ag as o}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1775621851000}'),n={name:"en/guide/docker/docker_thanks.md"};function c(p,r,h,i,s,l){return a(),t("div",null,r[0]||(r[0]=[o('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://hub.docker.com/_/debian" target="_blank" rel="noreferrer">https://hub.docker.com/_/debian</a></p><p><a href="https://hub.docker.com/r/redroid/redroid" target="_blank" rel="noreferrer">https://hub.docker.com/r/redroid/redroid</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://guacamole.apache.org/doc/gug/introduction.html" target="_blank" rel="noreferrer">https://guacamole.apache.org/doc/gug/introduction.html</a></p><p><a href="https://blog.imoeq.com/oracle-arm-run-android-by-docker" target="_blank" rel="noreferrer">https://blog.imoeq.com/oracle-arm-run-android-by-docker</a></p><p><a href="https://blog.imoeq.com/scrcpy-run-a-android-web-page" target="_blank" rel="noreferrer">https://blog.imoeq.com/scrcpy-run-a-android-web-page</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/" target="_blank" rel="noreferrer">https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/</a></p><p><a href="https://releases.hashicorp.com/vagrant/" target="_blank" rel="noreferrer">https://releases.hashicorp.com/vagrant/</a></p><p><a href="https://github.com/hashicorp/vagrant/" target="_blank" rel="noreferrer">https://github.com/hashicorp/vagrant/</a></p><p><a href="https://app.vagrantup.com/peru" target="_blank" rel="noreferrer">https://app.vagrantup.com/peru</a></p><p><a href="https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1" target="_blank" rel="noreferrer">https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1</a></p><p><a href="https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4" target="_blank" rel="noreferrer">https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4</a></p><p><a href="https://github.com/jlesage/docker-firefox" target="_blank" rel="noreferrer">https://github.com/jlesage/docker-firefox</a></p><p><a href="https://github.com/linuxserver/docker-webtop" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-webtop</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/linuxserver/docker-chromium" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-chromium</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> and @CoiaPrant for providing docker guidance.</p>',20)]))}const u=e(n,[["render",c]]);export{d as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a,ag as o}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1775571225000}'),n={name:"en/guide/docker/docker_thanks.md"};function c(p,r,h,i,s,l){return a(),t("div",null,r[0]||(r[0]=[o("",20)]))}const u=e(n,[["render",c]]);export{d as __pageData,u as default};
|
||||
import{_ as e,c as t,o as a,ag as o}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1775621851000}'),n={name:"en/guide/docker/docker_thanks.md"};function c(p,r,h,i,s,l){return a(),t("div",null,r[0]||(r[0]=[o("",20)]))}const u=e(n,[["render",c]]);export{d as __pageData,u as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as i,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Running Windows Virtual Machine in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_windows.md","filePath":"en/guide/docker/docker_windows.md","lastUpdated":1775571225000}'),t={name:"en/guide/docker/docker_windows.md"};function r(l,s,o,p,h,d){return a(),i("div",null,s[0]||(s[0]=[n("",61)]))}const u=e(t,[["render",r]]);export{k as __pageData,u as default};
|
||||
import{_ as e,c as i,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const k=JSON.parse('{"title":"Running Windows Virtual Machine in Docker","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_windows.md","filePath":"en/guide/docker/docker_windows.md","lastUpdated":1775621851000}'),t={name:"en/guide/docker/docker_windows.md"};function r(l,s,o,p,h,d){return a(),i("div",null,s[0]||(s[0]=[n("",61)]))}const u=e(t,[["render",r]]);export{k as __pageData,u as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as s,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const i="/assets/lxd1.CbGLa5s4.png",l="/assets/lxd2.C4eWfnaM.png",p="/assets/lxd3.tQBNiKQo.png",r="/assets/lxd4.CSfRHLxz.png",o="/assets/lxd5.WUJi0qzd.png",d="/assets/lxd6.Cnds779U.png",c="/assets/lxd7.EJ0s1ls2.png",h="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",b="/assets/lxd10.BjQ0l1K7.png",m="/assets/lxd11.D6E5sVW2.png",g="/assets/lxd12.B9udKIzn.png",k="/assets/lxd13.Dwv7xBpz.png",v="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",f="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",D=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1775571225000}'),B={name:"en/guide/incus/incus_custom.md"};function I(q,e,T,V,A,z){return n(),a("div",null,e[0]||(e[0]=[t(`<h1 id="custom" tabindex="-1">Custom <a class="header-anchor" href="#custom" aria-label="Permalink to "Custom""></a></h1><h2 id="adding-a-customized-mirror-source" tabindex="-1">Adding a customized mirror source <a class="header-anchor" href="#adding-a-customized-mirror-source" aria-label="Permalink to "Adding a customized mirror source""></a></h2><p><a href="https://incusimages.spiritlhl.net/" target="_blank" rel="noreferrer">https://incusimages.spiritlhl.net/</a></p><p>This mirror source is obtained by me through daily patching, and will be updated daily, what exactly is patched can be found at <a href="https://github.com/oneclickvirt/incus_images" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/incus_images</a> for details.</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span></span>
|
||||
import{_ as s,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const i="/assets/lxd1.CbGLa5s4.png",l="/assets/lxd2.C4eWfnaM.png",p="/assets/lxd3.tQBNiKQo.png",r="/assets/lxd4.CSfRHLxz.png",o="/assets/lxd5.WUJi0qzd.png",d="/assets/lxd6.Cnds779U.png",c="/assets/lxd7.EJ0s1ls2.png",h="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",b="/assets/lxd10.BjQ0l1K7.png",m="/assets/lxd11.D6E5sVW2.png",g="/assets/lxd12.B9udKIzn.png",k="/assets/lxd13.Dwv7xBpz.png",v="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",f="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",D=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1775621851000}'),B={name:"en/guide/incus/incus_custom.md"};function I(q,e,T,V,A,z){return n(),a("div",null,e[0]||(e[0]=[t(`<h1 id="custom" tabindex="-1">Custom <a class="header-anchor" href="#custom" aria-label="Permalink to "Custom""></a></h1><h2 id="adding-a-customized-mirror-source" tabindex="-1">Adding a customized mirror source <a class="header-anchor" href="#adding-a-customized-mirror-source" aria-label="Permalink to "Adding a customized mirror source""></a></h2><p><a href="https://incusimages.spiritlhl.net/" target="_blank" rel="noreferrer">https://incusimages.spiritlhl.net/</a></p><p>This mirror source is obtained by me through daily patching, and will be updated daily, what exactly is patched can be found at <a href="https://github.com/oneclickvirt/incus_images" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/incus_images</a> for details.</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://incusimages.spiritlhl.net</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --protocol</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> simplestreams</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --public</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> image</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl:debian</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><h2 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to "Attach free IPV6 address segments to host machines""></a></h2><p>Some machines don't have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn't have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table tabindex="0"><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 OR 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>custom</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h3 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to "Initial environment modifications""></a></h3><p>Execute</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>touch /etc/cloud/cloud-init.disabled</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>systemctl is-active systemd-networkd</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>and</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>systemctl is-active networking</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>See which case this falls into, if it's the former active and the latter inactive, you need to reinstall/DD a system that isn't configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span># Judge for yourself whether you need to disable the original network management or not</span></span>
|
||||
<span class="line"><span># systemctl stop systemd-networkd</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as s,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const i="/assets/lxd1.CbGLa5s4.png",l="/assets/lxd2.C4eWfnaM.png",p="/assets/lxd3.tQBNiKQo.png",r="/assets/lxd4.CSfRHLxz.png",o="/assets/lxd5.WUJi0qzd.png",d="/assets/lxd6.Cnds779U.png",c="/assets/lxd7.EJ0s1ls2.png",h="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",b="/assets/lxd10.BjQ0l1K7.png",m="/assets/lxd11.D6E5sVW2.png",g="/assets/lxd12.B9udKIzn.png",k="/assets/lxd13.Dwv7xBpz.png",v="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",f="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",D=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1775571225000}'),B={name:"en/guide/incus/incus_custom.md"};function I(q,e,T,V,A,z){return n(),a("div",null,e[0]||(e[0]=[t("",198)]))}const S=s(B,[["render",I]]);export{D as __pageData,S as default};
|
||||
import{_ as s,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const i="/assets/lxd1.CbGLa5s4.png",l="/assets/lxd2.C4eWfnaM.png",p="/assets/lxd3.tQBNiKQo.png",r="/assets/lxd4.CSfRHLxz.png",o="/assets/lxd5.WUJi0qzd.png",d="/assets/lxd6.Cnds779U.png",c="/assets/lxd7.EJ0s1ls2.png",h="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",b="/assets/lxd10.BjQ0l1K7.png",m="/assets/lxd11.D6E5sVW2.png",g="/assets/lxd12.B9udKIzn.png",k="/assets/lxd13.Dwv7xBpz.png",v="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",f="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",D=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1775621851000}'),B={name:"en/guide/incus/incus_custom.md"};function I(q,e,T,V,A,z){return n(),a("div",null,e[0]||(e[0]=[t("",198)]))}const S=s(B,[["render",I]]);export{D as __pageData,S as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Custom Configuration","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_extra_config.md","filePath":"en/guide/incus/incus_extra_config.md","lastUpdated":1775571225000}'),t={name:"en/guide/incus/incus_extra_config.md"};function l(p,s,h,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e("",33)]))}const u=i(t,[["render",l]]);export{c as __pageData,u as default};
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Custom Configuration","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_extra_config.md","filePath":"en/guide/incus/incus_extra_config.md","lastUpdated":1775621851000}'),t={name:"en/guide/incus/incus_extra_config.md"};function l(p,s,h,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e("",33)]))}const u=i(t,[["render",l]]);export{c as __pageData,u as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as e,o as i,ag as n}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_install.md","filePath":"en/guide/incus/incus_install.md","lastUpdated":1775571225000}'),t={name:"en/guide/incus/incus_install.md"};function l(p,s,o,r,h,c){return i(),e("div",null,s[0]||(s[0]=[n("",42)]))}const m=a(t,[["render",l]]);export{u as __pageData,m as default};
|
||||
import{_ as a,c as e,o as i,ag as n}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_install.md","filePath":"en/guide/incus/incus_install.md","lastUpdated":1775621851000}'),t={name:"en/guide/incus/incus_install.md"};function l(p,s,o,r,h,c){return i(),e("div",null,s[0]||(s[0]=[n("",42)]))}const m=a(t,[["render",l]]);export{u as __pageData,m as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Running LXC Container in Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_lxc.md","filePath":"en/guide/incus/incus_lxc.md","lastUpdated":1775571225000}'),t={name:"en/guide/incus/incus_lxc.md"};function l(h,s,p,r,o,d){return e(),a("div",null,s[0]||(s[0]=[n("",85)]))}const u=i(t,[["render",l]]);export{c as __pageData,u as default};
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Running LXC Container in Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_lxc.md","filePath":"en/guide/incus/incus_lxc.md","lastUpdated":1775621851000}'),t={name:"en/guide/incus/incus_lxc.md"};function l(h,s,p,r,o,d){return e(),a("div",null,s[0]||(s[0]=[n("",85)]))}const u=i(t,[["render",l]]);export{c as __pageData,u as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as t,c as n,o,ag as r}from"./chunks/framework.QPV3Ar9-.js";const p=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_precheck.md","filePath":"en/guide/incus/incus_precheck.md","lastUpdated":1775571225000}'),a={name:"en/guide/incus/incus_precheck.md"};function i(s,e,c,d,l,h){return o(),n("div",null,e[0]||(e[0]=[r("",15)]))}const m=t(a,[["render",i]]);export{p as __pageData,m as default};
|
||||
import{_ as t,c as n,o,ag as r}from"./chunks/framework.QPV3Ar9-.js";const p=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_precheck.md","filePath":"en/guide/incus/incus_precheck.md","lastUpdated":1775621851000}'),a={name:"en/guide/incus/incus_precheck.md"};function i(s,e,c,d,l,h){return o(),n("div",null,e[0]||(e[0]=[r("",15)]))}const m=t(a,[["render",i]]);export{p as __pageData,m as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as i,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qa.md","filePath":"en/guide/incus/incus_qa.md","lastUpdated":1775571225000}'),n={name:"en/guide/incus/incus_qa.md"};function l(r,s,o,h,p,d){return a(),i("div",null,s[0]||(s[0]=[t("",36)]))}const k=e(n,[["render",l]]);export{u as __pageData,k as default};
|
||||
import{_ as e,c as i,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qa.md","filePath":"en/guide/incus/incus_qa.md","lastUpdated":1775621851000}'),n={name:"en/guide/incus/incus_qa.md"};function l(r,s,o,h,p,d){return a(),i("div",null,s[0]||(s[0]=[t("",36)]))}const k=e(n,[["render",l]]);export{u as __pageData,k as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as i,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Running QEMU Virtualized Linux Virtual Machines in Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qemu.md","filePath":"en/guide/incus/incus_qemu.md","lastUpdated":1775571225000}'),n={name:"en/guide/incus/incus_qemu.md"};function l(r,s,h,d,p,o){return a(),i("div",null,s[0]||(s[0]=[t("",31)]))}const k=e(n,[["render",l]]);export{u as __pageData,k as default};
|
||||
import{_ as e,c as i,o as a,ag as t}from"./chunks/framework.QPV3Ar9-.js";const u=JSON.parse('{"title":"Running QEMU Virtualized Linux Virtual Machines in Incus","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qemu.md","filePath":"en/guide/incus/incus_qemu.md","lastUpdated":1775621851000}'),n={name:"en/guide/incus/incus_qemu.md"};function l(r,s,h,d,p,o){return a(),i("div",null,s[0]||(s[0]=[t("",31)]))}const k=e(n,[["render",l]]);export{u as __pageData,k as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as r,o as n,ag as s}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1775571225000}'),a={name:"en/guide/incus/incus_thanks.md"};function o(i,t,c,p,l,u){return n(),r("div",null,t[0]||(t[0]=[s('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p><a href="https://github.com/zabbly/incus" target="_blank" rel="noreferrer">https://github.com/zabbly/incus</a></p>',10)]))}const g=e(a,[["render",o]]);export{d as __pageData,g as default};
|
||||
import{_ as e,c as r,o as n,ag as s}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1775621851000}'),a={name:"en/guide/incus/incus_thanks.md"};function o(i,t,c,p,l,u){return n(),r("div",null,t[0]||(t[0]=[s('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p><a href="https://github.com/zabbly/incus" target="_blank" rel="noreferrer">https://github.com/zabbly/incus</a></p>',10)]))}const g=e(a,[["render",o]]);export{d as __pageData,g as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as r,o as n,ag as s}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1775571225000}'),a={name:"en/guide/incus/incus_thanks.md"};function o(i,t,c,p,l,u){return n(),r("div",null,t[0]||(t[0]=[s("",10)]))}const g=e(a,[["render",o]]);export{d as __pageData,g as default};
|
||||
import{_ as e,c as r,o as n,ag as s}from"./chunks/framework.QPV3Ar9-.js";const d=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1775621851000}'),a={name:"en/guide/incus/incus_thanks.md"};function o(i,t,c,p,l,u){return n(),r("div",null,t[0]||(t[0]=[s("",10)]))}const g=e(a,[["render",o]]);export{d as __pageData,g as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const t="/assets/win1.BYIcp55m.png",l="/assets/win2.BNn7RQzT.jpg",p="/assets/win3.BgsODJcQ.jpg",h="/assets/wintj.tP8uDOfH.jpg",r="/assets/wincf.B_Jc2M1G.jpg",o="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.BSQ3T_9y.jpg",k="/assets/win7.xhBfJRvu.jpg",c="/assets/win6.B-575Zc1.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in Incus","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_windows.md","filePath":"en/guide/incus/incus_windows.md","lastUpdated":1775571225000}'),u={name:"en/guide/incus/incus_windows.md"};function g(F,s,m,y,b,C){return e(),a("div",null,s[0]||(s[0]=[n(`<h1 id="running-windows-virtual-machines-in-incus" tabindex="-1">Running Windows Virtual Machines in Incus <a class="header-anchor" href="#running-windows-virtual-machines-in-incus" aria-label="Permalink to "Running Windows Virtual Machines in Incus""></a></h1><h2 id="verify-the-incus-driver" tabindex="-1">Verify the Incus Driver <a class="header-anchor" href="#verify-the-incus-driver" aria-label="Permalink to "Verify the Incus Driver""></a></h2><p>Ensure that <code>incus info</code> output contains <code>qemu</code>, otherwise you cannot create VMs:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> info</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -i</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> driver:</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>If it only shows <code>lxc</code>, no need to read the subsequent tutorials, incus drivers don't support opening a VM.</p><h2 id="prepare-the-environment-and-patch-the-image" tabindex="-1">Prepare the Environment and Patch the Image <a class="header-anchor" href="#prepare-the-environment-and-patch-the-image" aria-label="Permalink to "Prepare the Environment and Patch the Image""></a></h2><p>Execute the following commands in sequence in the <code>/root</code> directory:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span></span>
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const t="/assets/win1.BYIcp55m.png",l="/assets/win2.BNn7RQzT.jpg",p="/assets/win3.BgsODJcQ.jpg",h="/assets/wintj.tP8uDOfH.jpg",r="/assets/wincf.B_Jc2M1G.jpg",o="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.BSQ3T_9y.jpg",k="/assets/win7.xhBfJRvu.jpg",c="/assets/win6.B-575Zc1.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in Incus","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_windows.md","filePath":"en/guide/incus/incus_windows.md","lastUpdated":1775621851000}'),u={name:"en/guide/incus/incus_windows.md"};function g(F,s,m,y,b,C){return e(),a("div",null,s[0]||(s[0]=[n(`<h1 id="running-windows-virtual-machines-in-incus" tabindex="-1">Running Windows Virtual Machines in Incus <a class="header-anchor" href="#running-windows-virtual-machines-in-incus" aria-label="Permalink to "Running Windows Virtual Machines in Incus""></a></h1><h2 id="verify-the-incus-driver" tabindex="-1">Verify the Incus Driver <a class="header-anchor" href="#verify-the-incus-driver" aria-label="Permalink to "Verify the Incus Driver""></a></h2><p>Ensure that <code>incus info</code> output contains <code>qemu</code>, otherwise you cannot create VMs:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">incus</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> info</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -i</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> driver:</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>If it only shows <code>lxc</code>, no need to read the subsequent tutorials, incus drivers don't support opening a VM.</p><h2 id="prepare-the-environment-and-patch-the-image" tabindex="-1">Prepare the Environment and Patch the Image <a class="header-anchor" href="#prepare-the-environment-and-patch-the-image" aria-label="Permalink to "Prepare the Environment and Patch the Image""></a></h2><p>Execute the following commands in sequence in the <code>/root</code> directory:</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> snapd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libguestfs-tools</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> wimtools</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rsync</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libhivex-bin</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> libwin-hivex-perl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> genisoimage</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mkisofs</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">snap</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> distrobuilder</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --classic</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># reboot to load some config</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const t="/assets/win1.BYIcp55m.png",l="/assets/win2.BNn7RQzT.jpg",p="/assets/win3.BgsODJcQ.jpg",h="/assets/wintj.tP8uDOfH.jpg",r="/assets/wincf.B_Jc2M1G.jpg",o="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.BSQ3T_9y.jpg",k="/assets/win7.xhBfJRvu.jpg",c="/assets/win6.B-575Zc1.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in Incus","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_windows.md","filePath":"en/guide/incus/incus_windows.md","lastUpdated":1775571225000}'),u={name:"en/guide/incus/incus_windows.md"};function g(F,s,m,y,b,C){return e(),a("div",null,s[0]||(s[0]=[n("",64)]))}const B=i(u,[["render",g]]);export{v as __pageData,B as default};
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const t="/assets/win1.BYIcp55m.png",l="/assets/win2.BNn7RQzT.jpg",p="/assets/win3.BgsODJcQ.jpg",h="/assets/wintj.tP8uDOfH.jpg",r="/assets/wincf.B_Jc2M1G.jpg",o="/assets/win4.DwKt_Ood.jpg",d="/assets/win5.BSQ3T_9y.jpg",k="/assets/win7.xhBfJRvu.jpg",c="/assets/win6.B-575Zc1.jpg",v=JSON.parse('{"title":"Running Windows Virtual Machines in Incus","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_windows.md","filePath":"en/guide/incus/incus_windows.md","lastUpdated":1775621851000}'),u={name:"en/guide/incus/incus_windows.md"};function g(F,s,m,y,b,C){return e(),a("div",null,s[0]||(s[0]=[n("",64)]))}const B=i(u,[["render",g]]);export{v as __pageData,B as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_build.md","filePath":"en/guide/kubevirt/kubevirt_build.md","lastUpdated":1775571225000}'),n={name:"en/guide/kubevirt/kubevirt_build.md"};function l(h,s,p,r,k,d){return e(),a("div",null,s[0]||(s[0]=[t("",43)]))}const F=i(n,[["render",l]]);export{c as __pageData,F as default};
|
||||
import{_ as i,c as a,o as e,ag as t}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_build.md","filePath":"en/guide/kubevirt/kubevirt_build.md","lastUpdated":1775621851000}'),n={name:"en/guide/kubevirt/kubevirt_build.md"};function l(h,s,p,r,k,d){return e(),a("div",null,s[0]||(s[0]=[t("",43)]))}const F=i(n,[["render",l]]);export{c as __pageData,F as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as s,c as e,o as t,ag as a}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_install.md","filePath":"en/guide/kubevirt/kubevirt_install.md","lastUpdated":1775571225000}'),n={name:"en/guide/kubevirt/kubevirt_install.md"};function l(r,i,o,p,d,h){return t(),e("div",null,i[0]||(i[0]=[a("",16)]))}const k=s(n,[["render",l]]);export{c as __pageData,k as default};
|
||||
import{_ as s,c as e,o as t,ag as a}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_install.md","filePath":"en/guide/kubevirt/kubevirt_install.md","lastUpdated":1775621851000}'),n={name:"en/guide/kubevirt/kubevirt_install.md"};function l(r,i,o,p,d,h){return t(),e("div",null,i[0]||(i[0]=[a("",16)]))}const k=s(n,[["render",l]]);export{c as __pageData,k as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as i,o as a,ag as r}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_precheck.md","filePath":"en/guide/kubevirt/kubevirt_precheck.md","lastUpdated":1775571225000}'),o={name:"en/guide/kubevirt/kubevirt_precheck.md"};function s(n,t,l,d,c,u){return a(),i("div",null,t[0]||(t[0]=[r('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>The following is an introduction to the non-customized part. The customized part has its own corresponding introduction; please do not mix them up.</p><p>Please give the project a <code>Star</code> for free support --> <a href="https://github.com/oneclickvirt/kubevirt" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/kubevirt</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><p>One-click deployment and management of KVM virtual machines based on KubeVirt on a Kubernetes (k3s) cluster, supporting batch or individual VM creation</p><ul><li>One-click deployment of the complete k3s + KubeVirt environment</li><li>Manages virtual machines in a Kubernetes environment via KubeVirt CRDs</li><li>Each virtual machine comes with its own dedicated SSH port and port mapping</li><li>Supports IPv4/IPv6 automatic allocation and port forwarding</li><li>Supports batch creation with automatic logging to a log file</li><li>Supports X86_64 and ARM64 architectures</li><li>Supports domestic CDN mirror acceleration</li></ul><h2 id="supported-systems-host" tabindex="-1">Supported Systems (Host) <a class="header-anchor" href="#supported-systems-host" aria-label="Permalink to "Supported Systems (Host)""></a></h2><table tabindex="0"><thead><tr><th>System</th><th>amd64</th><th>arm64</th></tr></thead><tbody><tr><td>Debian 11</td><td>✓</td><td>✓</td></tr><tr><td>Debian 12</td><td>✓</td><td>✓</td></tr><tr><td>Ubuntu 20.04</td><td>✓</td><td>✓</td></tr><tr><td>Ubuntu 22.04</td><td>✓</td><td>✓</td></tr></tbody></table><h2 id="configuration-requirements" tabindex="-1">Configuration Requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to "Configuration Requirements""></a></h2><ul><li>Host nodes must support KVM hardware virtualization (<code>/dev/kvm</code> available)</li><li>Kernel version: ≥ 4.15</li><li>Architecture: x86_64 (amd64) or ARM64</li><li>Memory: at least 4GB available (including k3s + KubeVirt overhead)</li><li>Storage: at least 20GB available disk space</li><li>OS: Debian 11+, Ubuntu 20.04+</li></ul><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Before using this project, make sure the host supports KVM virtualization. You can check with the following command:</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">egrep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -c</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> '(vmx|svm)'</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /proc/cpuinfo</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>A result greater than 0 indicates KVM virtualization is supported. You can also run <code>ls /dev/kvm</code> to confirm the device file exists.</p></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This project will automatically deploy k3s. There is no need to prepare a Kubernetes cluster in advance.</p></div><p>It is recommended to add some SWAP virtual memory before creating virtual machines to avoid sudden memory usage causing the host to crash.</p>',13)]))}const m=e(o,[["render",s]]);export{h as __pageData,m as default};
|
||||
import{_ as e,c as i,o as a,ag as r}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_precheck.md","filePath":"en/guide/kubevirt/kubevirt_precheck.md","lastUpdated":1775621851000}'),o={name:"en/guide/kubevirt/kubevirt_precheck.md"};function s(n,t,l,d,c,u){return a(),i("div",null,t[0]||(t[0]=[r('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>The following is an introduction to the non-customized part. The customized part has its own corresponding introduction; please do not mix them up.</p><p>Please give the project a <code>Star</code> for free support --> <a href="https://github.com/oneclickvirt/kubevirt" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/kubevirt</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to "Project Features""></a></h2><p>One-click deployment and management of KVM virtual machines based on KubeVirt on a Kubernetes (k3s) cluster, supporting batch or individual VM creation</p><ul><li>One-click deployment of the complete k3s + KubeVirt environment</li><li>Manages virtual machines in a Kubernetes environment via KubeVirt CRDs</li><li>Each virtual machine comes with its own dedicated SSH port and port mapping</li><li>Supports IPv4/IPv6 automatic allocation and port forwarding</li><li>Supports batch creation with automatic logging to a log file</li><li>Supports X86_64 and ARM64 architectures</li><li>Supports domestic CDN mirror acceleration</li></ul><h2 id="supported-systems-host" tabindex="-1">Supported Systems (Host) <a class="header-anchor" href="#supported-systems-host" aria-label="Permalink to "Supported Systems (Host)""></a></h2><table tabindex="0"><thead><tr><th>System</th><th>amd64</th><th>arm64</th></tr></thead><tbody><tr><td>Debian 11</td><td>✓</td><td>✓</td></tr><tr><td>Debian 12</td><td>✓</td><td>✓</td></tr><tr><td>Ubuntu 20.04</td><td>✓</td><td>✓</td></tr><tr><td>Ubuntu 22.04</td><td>✓</td><td>✓</td></tr></tbody></table><h2 id="configuration-requirements" tabindex="-1">Configuration Requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to "Configuration Requirements""></a></h2><ul><li>Host nodes must support KVM hardware virtualization (<code>/dev/kvm</code> available)</li><li>Kernel version: ≥ 4.15</li><li>Architecture: x86_64 (amd64) or ARM64</li><li>Memory: at least 4GB available (including k3s + KubeVirt overhead)</li><li>Storage: at least 20GB available disk space</li><li>OS: Debian 11+, Ubuntu 20.04+</li></ul><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Before using this project, make sure the host supports KVM virtualization. You can check with the following command:</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">egrep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -c</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> '(vmx|svm)'</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /proc/cpuinfo</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>A result greater than 0 indicates KVM virtualization is supported. You can also run <code>ls /dev/kvm</code> to confirm the device file exists.</p></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This project will automatically deploy k3s. There is no need to prepare a Kubernetes cluster in advance.</p></div><p>It is recommended to add some SWAP virtual memory before creating virtual machines to avoid sudden memory usage causing the host to crash.</p>',13)]))}const m=e(o,[["render",s]]);export{h as __pageData,m as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as i,o as a,ag as r}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_precheck.md","filePath":"en/guide/kubevirt/kubevirt_precheck.md","lastUpdated":1775571225000}'),o={name:"en/guide/kubevirt/kubevirt_precheck.md"};function s(n,t,l,d,c,u){return a(),i("div",null,t[0]||(t[0]=[r("",13)]))}const m=e(o,[["render",s]]);export{h as __pageData,m as default};
|
||||
import{_ as e,c as i,o as a,ag as r}from"./chunks/framework.QPV3Ar9-.js";const h=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_precheck.md","filePath":"en/guide/kubevirt/kubevirt_precheck.md","lastUpdated":1775621851000}'),o={name:"en/guide/kubevirt/kubevirt_precheck.md"};function s(n,t,l,d,c,u){return a(),i("div",null,t[0]||(t[0]=[r("",13)]))}const m=e(o,[["render",s]]);export{h as __pageData,m as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"FAQ","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_qa.md","filePath":"en/guide/kubevirt/kubevirt_qa.md","lastUpdated":1775571225000}'),t={name:"en/guide/kubevirt/kubevirt_qa.md"};function l(h,s,p,r,d,k){return e(),a("div",null,s[0]||(s[0]=[n("",43)]))}const u=i(t,[["render",l]]);export{c as __pageData,u as default};
|
||||
import{_ as i,c as a,o as e,ag as n}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"FAQ","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_qa.md","filePath":"en/guide/kubevirt/kubevirt_qa.md","lastUpdated":1775621851000}'),t={name:"en/guide/kubevirt/kubevirt_qa.md"};function l(h,s,p,r,d,k){return e(),a("div",null,s[0]||(s[0]=[n("",43)]))}const u=i(t,[["render",l]]);export{c as __pageData,u as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as r,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const b=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_thanks.md","filePath":"en/guide/kubevirt/kubevirt_thanks.md","lastUpdated":1775571225000}'),i={name:"en/guide/kubevirt/kubevirt_thanks.md"};function o(s,e,p,h,u,l){return a(),r("div",null,e[0]||(e[0]=[n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/kubevirt/kubevirt" target="_blank" rel="noreferrer">https://github.com/kubevirt/kubevirt</a></p><p><a href="https://github.com/kubevirt/containerized-data-importer" target="_blank" rel="noreferrer">https://github.com/kubevirt/containerized-data-importer</a></p><p><a href="https://github.com/k3s-io/k3s" target="_blank" rel="noreferrer">https://github.com/k3s-io/k3s</a></p><p><a href="https://github.com/flannel-io/flannel" target="_blank" rel="noreferrer">https://github.com/flannel-io/flannel</a></p><p><a href="https://github.com/qemu/qemu" target="_blank" rel="noreferrer">https://github.com/qemu/qemu</a></p><p><a href="https://github.com/spiritLHLS/addswap" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addswap</a></p><p><a href="https://kubernetes.io/" target="_blank" rel="noreferrer">https://kubernetes.io/</a></p>',8)]))}const c=t(i,[["render",o]]);export{b as __pageData,c as default};
|
||||
import{_ as t,c as r,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const b=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_thanks.md","filePath":"en/guide/kubevirt/kubevirt_thanks.md","lastUpdated":1775621851000}'),i={name:"en/guide/kubevirt/kubevirt_thanks.md"};function o(s,e,p,h,u,l){return a(),r("div",null,e[0]||(e[0]=[n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to "Acknowledgements""></a></h2><p><a href="https://github.com/kubevirt/kubevirt" target="_blank" rel="noreferrer">https://github.com/kubevirt/kubevirt</a></p><p><a href="https://github.com/kubevirt/containerized-data-importer" target="_blank" rel="noreferrer">https://github.com/kubevirt/containerized-data-importer</a></p><p><a href="https://github.com/k3s-io/k3s" target="_blank" rel="noreferrer">https://github.com/k3s-io/k3s</a></p><p><a href="https://github.com/flannel-io/flannel" target="_blank" rel="noreferrer">https://github.com/flannel-io/flannel</a></p><p><a href="https://github.com/qemu/qemu" target="_blank" rel="noreferrer">https://github.com/qemu/qemu</a></p><p><a href="https://github.com/spiritLHLS/addswap" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addswap</a></p><p><a href="https://kubernetes.io/" target="_blank" rel="noreferrer">https://kubernetes.io/</a></p>',8)]))}const c=t(i,[["render",o]]);export{b as __pageData,c as default};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as r,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const b=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_thanks.md","filePath":"en/guide/kubevirt/kubevirt_thanks.md","lastUpdated":1775571225000}'),i={name:"en/guide/kubevirt/kubevirt_thanks.md"};function o(s,e,p,h,u,l){return a(),r("div",null,e[0]||(e[0]=[n("",8)]))}const c=t(i,[["render",o]]);export{b as __pageData,c as default};
|
||||
import{_ as t,c as r,o as a,ag as n}from"./chunks/framework.QPV3Ar9-.js";const b=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/kubevirt/kubevirt_thanks.md","filePath":"en/guide/kubevirt/kubevirt_thanks.md","lastUpdated":1775621851000}'),i={name:"en/guide/kubevirt/kubevirt_thanks.md"};function o(s,e,p,h,u,l){return a(),r("div",null,e[0]||(e[0]=[n("",8)]))}const c=t(i,[["render",o]]);export{b as __pageData,c as default};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as s,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const i="/assets/lxd1.CbGLa5s4.png",l="/assets/lxd2.C4eWfnaM.png",p="/assets/lxd3.tQBNiKQo.png",r="/assets/lxd4.CSfRHLxz.png",o="/assets/lxd5.WUJi0qzd.png",d="/assets/lxd6.Cnds779U.png",h="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",b="/assets/lxd10.BjQ0l1K7.png",m="/assets/lxd11.D6E5sVW2.png",g="/assets/lxd12.B9udKIzn.png",k="/assets/lxd13.Dwv7xBpz.png",v="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",f="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",D=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1775571225000}'),B={name:"en/guide/lxd/lxd_custom.md"};function I(q,e,T,V,A,z){return n(),a("div",null,e[0]||(e[0]=[t(`<h1 id="custom" tabindex="-1">Custom <a class="header-anchor" href="#custom" aria-label="Permalink to "Custom""></a></h1><h2 id="adding-a-customized-mirror-source" tabindex="-1">Adding a customized mirror source <a class="header-anchor" href="#adding-a-customized-mirror-source" aria-label="Permalink to "Adding a customized mirror source""></a></h2><p><a href="https://lxdimages.spiritlhl.net/" target="_blank" rel="noreferrer">https://lxdimages.spiritlhl.net/</a></p><p>This mirror source is obtained by me through daily patching, and will be updated daily, what exactly is patched can be found at <a href="https://github.com/oneclickvirt/lxd_images" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/lxd_images</a> for details.</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span></span>
|
||||
import{_ as s,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const i="/assets/lxd1.CbGLa5s4.png",l="/assets/lxd2.C4eWfnaM.png",p="/assets/lxd3.tQBNiKQo.png",r="/assets/lxd4.CSfRHLxz.png",o="/assets/lxd5.WUJi0qzd.png",d="/assets/lxd6.Cnds779U.png",h="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",b="/assets/lxd10.BjQ0l1K7.png",m="/assets/lxd11.D6E5sVW2.png",g="/assets/lxd12.B9udKIzn.png",k="/assets/lxd13.Dwv7xBpz.png",v="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",f="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",D=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1775621851000}'),B={name:"en/guide/lxd/lxd_custom.md"};function I(q,e,T,V,A,z){return n(),a("div",null,e[0]||(e[0]=[t(`<h1 id="custom" tabindex="-1">Custom <a class="header-anchor" href="#custom" aria-label="Permalink to "Custom""></a></h1><h2 id="adding-a-customized-mirror-source" tabindex="-1">Adding a customized mirror source <a class="header-anchor" href="#adding-a-customized-mirror-source" aria-label="Permalink to "Adding a customized mirror source""></a></h2><p><a href="https://lxdimages.spiritlhl.net/" target="_blank" rel="noreferrer">https://lxdimages.spiritlhl.net/</a></p><p>This mirror source is obtained by me through daily patching, and will be updated daily, what exactly is patched can be found at <a href="https://github.com/oneclickvirt/lxd_images" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/lxd_images</a> for details.</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> https://lxdimages.spiritlhl.net</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --protocol</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> simplestreams</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --public</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">lxc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> image</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> list</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> spiritlhl:debian</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><h2 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to "Attach free IPV6 address segments to host machines""></a></h2><p>Some machines don't have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn't have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table tabindex="0"><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 OR 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>custom</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h3 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to "Initial environment modifications""></a></h3><p>Execute</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>touch /etc/cloud/cloud-init.disabled</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>systemctl is-active systemd-networkd</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>and</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>systemctl is-active networking</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>See which case this falls into, if it's the former active and the latter inactive, you need to reinstall/DD a system that isn't configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span># Judge for yourself whether you need to disable the original network management or not</span></span>
|
||||
<span class="line"><span># systemctl stop systemd-networkd</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as s,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const i="/assets/lxd1.CbGLa5s4.png",l="/assets/lxd2.C4eWfnaM.png",p="/assets/lxd3.tQBNiKQo.png",r="/assets/lxd4.CSfRHLxz.png",o="/assets/lxd5.WUJi0qzd.png",d="/assets/lxd6.Cnds779U.png",h="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",b="/assets/lxd10.BjQ0l1K7.png",m="/assets/lxd11.D6E5sVW2.png",g="/assets/lxd12.B9udKIzn.png",k="/assets/lxd13.Dwv7xBpz.png",v="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",f="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",D=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1775571225000}'),B={name:"en/guide/lxd/lxd_custom.md"};function I(q,e,T,V,A,z){return n(),a("div",null,e[0]||(e[0]=[t("",198)]))}const S=s(B,[["render",I]]);export{D as __pageData,S as default};
|
||||
import{_ as s,c as a,o as n,ag as t}from"./chunks/framework.QPV3Ar9-.js";const i="/assets/lxd1.CbGLa5s4.png",l="/assets/lxd2.C4eWfnaM.png",p="/assets/lxd3.tQBNiKQo.png",r="/assets/lxd4.CSfRHLxz.png",o="/assets/lxd5.WUJi0qzd.png",d="/assets/lxd6.Cnds779U.png",h="/assets/lxd7.EJ0s1ls2.png",c="/assets/lxd8.DAOueoww.png",u="/assets/lxd9.Dgmw4lpJ.png",b="/assets/lxd10.BjQ0l1K7.png",m="/assets/lxd11.D6E5sVW2.png",g="/assets/lxd12.B9udKIzn.png",k="/assets/lxd13.Dwv7xBpz.png",v="/assets/lxd14.Whdz6cP-.png",y="/assets/lxd15.BjW7LbDr.png",f="/assets/lxd16.CgeIdYJ2.png",F="/assets/lxd17.CWPY1pea.png",w="/assets/lxd18.DqnpcYcL.png",C="/assets/lxd19.B9_MB265.png",x="/assets/lxd20.rK3P3TT8.png",P="/assets/lxd21.w-R0l00Y.png",_="/assets/lxd22.45M-VX6J.png",E="/assets/lxd23.CLaVW0qk.png",D=JSON.parse('{"title":"Custom","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1775621851000}'),B={name:"en/guide/lxd/lxd_custom.md"};function I(q,e,T,V,A,z){return n(),a("div",null,e[0]||(e[0]=[t("",198)]))}const S=s(B,[["render",I]]);export{D as __pageData,S as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Custom Configuration","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_extra_config.md","filePath":"en/guide/lxd/lxd_extra_config.md","lastUpdated":1775571225000}'),t={name:"en/guide/lxd/lxd_extra_config.md"};function l(p,s,h,r,d,o){return n(),a("div",null,s[0]||(s[0]=[e("",33)]))}const F=i(t,[["render",l]]);export{c as __pageData,F as default};
|
||||
import{_ as i,c as a,o as n,ag as e}from"./chunks/framework.QPV3Ar9-.js";const c=JSON.parse('{"title":"Custom Configuration","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_extra_config.md","filePath":"en/guide/lxd/lxd_extra_config.md","lastUpdated":1775621851000}'),t={name:"en/guide/lxd/lxd_extra_config.md"};function l(p,s,h,r,d,o){return n(),a("div",null,s[0]||(s[0]=[e("",33)]))}const F=i(t,[["render",l]]);export{c as __pageData,F as default};
|
||||
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user