mirror of
https://github.com/oneclickvirt/oneclickvirt.github.io.git
synced 2026-06-01 08:11:32 +08:00
25 lines
22 KiB
JavaScript
25 lines
22 KiB
JavaScript
import{_ as s,v as a,b as n,R as o}from"./chunks/framework.70afa331.js";const D=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_build.md","filePath":"en/guide/docker/docker_build.md","lastUpdated":1746721377000}'),e={name:"en/guide/docker/docker_build.md"},l=o(`<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><p>There are two methods of building</p><h2 id="setting-up-standalone" tabindex="-1">Setting Up Standalone <a class="header-anchor" href="#setting-up-standalone" aria-label="Permalink to "Setting Up Standalone""></a></h2><ul><li>Generate only one docker</li><li>Can be configured to bind a separate IPV6 address, but requires a docker previously installed using the environment installation command of this set of scripts, and requires the host to be bound to at least the /112 IPV6 subnet</li><li>Support for x86_64 and ARM architecture servers</li></ul><h3 id="download-the-script" tabindex="-1">Download the Script <a class="header-anchor" href="#download-the-script" aria-label="Permalink to "Download the Script""></a></h3><p>Command:</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/onedocker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">onedocker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">onedocker.sh</span></span></code></pre></div><h3 id="example" tabindex="-1">Example <a class="header-anchor" href="#example" aria-label="Permalink to "Example""></a></h3><p>Run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">./onedocker.sh name cpu memory password sshport startport endport <independent_ipv6> <system></span></span></code></pre></div><p>Currently, the system only supports selecting:</p><ul><li>alpine</li><li>debian</li><li>ubuntu</li><li>almalinux</li></ul><p>with Debian being the default choice.</p><p>The following is the information for the created example container:</p><table><thead><tr><th>Attribute</th><th>Value</th></tr></thead><tbody><tr><td>Container Name</td><td>test</td></tr><tr><td>Username for SSH Login</td><td>root</td></tr><tr><td>Password for SSH Login</td><td>123456</td></tr><tr><td>Number of CPU Cores</td><td>1</td></tr><tr><td>Memory Size</td><td>512MB</td></tr><tr><td>SSH Port</td><td>25000</td></tr><tr><td>Port Range for Internal and External Mapping</td><td>34975 to 35000</td></tr><tr><td>Operating System</td><td>debian</td></tr><tr><td>Whether to bind a separate IPV6 address</td><td>N</td></tr></tbody></table><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">./onedocker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">test</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">512</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">123456</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">25000</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">34975</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">35000</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">N</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">debian</span></span></code></pre></div><h3 id="related-operations" tabindex="-1">Related operations <a class="header-anchor" href="#related-operations" aria-label="Permalink to "Related operations""></a></h3><p>Deleting the test container</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-f</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">test</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">test</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">ls</span></span></code></pre></div><p>Accessing the test container</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">exec</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-it</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">test</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/bin/bash</span></span></code></pre></div><p>To exit the container, simply execute <code>exit</code>.</p><p>Inquiry Information</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">cat</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">Container_Name</span><span style="color:#89DDFF;">(</span><span style="color:#FFCB6B;">change</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">me</span><span style="color:#89DDFF;">)</span></span></code></pre></div><p>The output format is</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">Container_Name SSH_Port Root_Password Number_of_Cores Memory Start_of_Public_Port End_of_Public_Port</span></span></code></pre></div><p>The docker's ipv6 address can only be looked up within the container itself, it doesn't exist in the docker's configuration</p><h2 id="batch-deployment" tabindex="-1">Batch Deployment <a class="header-anchor" href="#batch-deployment" aria-label="Permalink to "Batch Deployment""></a></h2><ul><li>Run inheritance configuration generation multiple times in bulk.</li><li>When generating multiple instances, it is recommended to execute within a <code>screen</code> session to avoid SSH connection interruptions.</li><li>Support for x86_64 and ARM architecture servers</li></ul><p>Command:</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/create_docker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">create_docker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">create_docker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">create_docker.sh</span></span></code></pre></div><h3 id="querying-information-on-batch-openings" tabindex="-1">Querying information on batch openings <a class="header-anchor" href="#querying-information-on-batch-openings" aria-label="Permalink to "Querying information on batch openings""></a></h3><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">cat</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dclog</span></span></code></pre></div><p>The output format is</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">Container_Name SSH_Port Root_Password Number_of_Cores Memory Start_of_Public_Port End_of_Public_Port</span></span></code></pre></div><p>One line corresponds to information about a container, the docker's ipv6 address can only be looked up within the container itself, it doesn't exist in the docker's configuration.</p><h2 id="uninstall-all-docker-containers-and-images" tabindex="-1">Uninstall all Docker containers and images <a class="header-anchor" href="#uninstall-all-docker-containers-and-images" aria-label="Permalink to "Uninstall all Docker containers and images""></a></h2><p>The following command offload ignores ndpresponder to prevent IPV6 configuration failure</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">ps</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-aq</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--format</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">{{.Names}}</span><span style="color:#89DDFF;">'</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-E</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">^ndpresponder</span><span style="color:#89DDFF;">'</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">xargs</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-r</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-f</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">images</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-aq</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--format</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">{{.Repository}}:{{.Tag}}</span><span style="color:#89DDFF;">'</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">grep</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-E</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">^ndpresponder</span><span style="color:#89DDFF;">'</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">xargs</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-r</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">rmi</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dclog</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">ls</span></span></code></pre></div><h2 id="update-all-commands-related-to-the-above-one-click-scripts" tabindex="-1">Update all commands related to the above one-click scripts <a class="header-anchor" href="#update-all-commands-related-to-the-above-one-click-scripts" aria-label="Permalink to "Update all commands related to the above one-click scripts""></a></h2><p>Delete the original configuration script</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/ssh_sh.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/ssh_bash.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/check-dns.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/ssh_sh.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/ssh_bash.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/onedocker.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">rm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-rf</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/create_docker.sh</span></span></code></pre></div><p>Download back the relevant configuration scripts for the new version</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">wget</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/docker/main/extra_scripts/check-dns.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-O</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/check-dns.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/check-dns.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">wget</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/config.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-O</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/config.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/config.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">wget</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/ssh_bash.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-O</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/ssh_bash.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/ssh_bash.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">wget</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/ssh_sh.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-O</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/ssh_sh.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/usr/local/bin/ssh_sh.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">wget</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/onedocker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-O</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/onedocker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/onedocker.sh</span></span>
|
||
<span class="line"><span style="color:#FFCB6B;">wget</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/create_docker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-O</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/create_docker.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&&</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/root/create_docker.sh</span></span></code></pre></div><h2 id="start-all-containers-after-host-reboot" tabindex="-1">Start all containers after host reboot <a class="header-anchor" href="#start-all-containers-after-host-reboot" aria-label="Permalink to "Start all containers after host reboot""></a></h2><p>The default containers are not set to restart themselves after stopping, you need to execute the following command to start all stopped containers.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker start $(docker ps -aq)</span></span></code></pre></div><h2 id="start-ssh-service-for-all-containers-after-host-reboot" tabindex="-1">Start SSH service for all containers after host reboot <a class="header-anchor" href="#start-ssh-service-for-all-containers-after-host-reboot" aria-label="Permalink to "Start SSH service for all containers after host reboot""></a></h2><p>Since the container itself does not have a daemon, the SSH service cannot start itself, and you need to execute the following command to start the SSH process for all containers.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">container_ids=$(docker ps -q)</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">for container_id in $container_ids</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">do</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> docker exec -it $container_id bash -c "service ssh start"</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> docker exec -it $container_id bash -c "service sshd restart"</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> docker exec -it $container_id sh -c "service ssh start"</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> docker exec -it $container_id sh -c "/usr/sbin/sshd"</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">done</span></span></code></pre></div>`,50),t=[l];function p(r,c,i,C,y,d){return a(),n("div",null,t)}const A=s(e,[["render",p]]);export{D as __pageData,A as default};
|