Files
oneclickvirt.github.io/assets/en_guide_docker_docker_build.md.dc575ec9.lean.js
2025-05-08 16:23:26 +00:00

25 lines
22 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 &quot;Introduction&quot;"></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 &quot;Setting Up Standalone&quot;"></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 &quot;Download the Script&quot;"></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;">&amp;&amp;</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 &quot;Example&quot;"></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 &lt;independent_ipv6&gt; &lt;system&gt;</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 &quot;Related operations&quot;"></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&#39;s ipv6 address can only be looked up within the container itself, it doesn&#39;t exist in the docker&#39;s configuration</p><h2 id="batch-deployment" tabindex="-1">Batch Deployment <a class="header-anchor" href="#batch-deployment" aria-label="Permalink to &quot;Batch Deployment&quot;"></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;">&amp;&amp;</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;">&amp;&amp;</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 &quot;Querying information on batch openings&quot;"></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&#39;s ipv6 address can only be looked up within the container itself, it doesn&#39;t exist in the docker&#39;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 &quot;Uninstall all Docker containers and images&quot;"></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;">&#39;</span><span style="color:#C3E88D;">{{.Names}}</span><span style="color:#89DDFF;">&#39;</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;">&#39;</span><span style="color:#C3E88D;">^ndpresponder</span><span style="color:#89DDFF;">&#39;</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;">&#39;</span><span style="color:#C3E88D;">{{.Repository}}:{{.Tag}}</span><span style="color:#89DDFF;">&#39;</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;">&#39;</span><span style="color:#C3E88D;">^ndpresponder</span><span style="color:#89DDFF;">&#39;</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 &quot;Update all commands related to the above one-click scripts&quot;"></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;">&amp;&amp;</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;">&amp;&amp;</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;">&amp;&amp;</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;">&amp;&amp;</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;">&amp;&amp;</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;">&amp;&amp;</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 &quot;Start all containers after host reboot&quot;"></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 &quot;Start SSH service for all containers after host reboot&quot;"></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 &quot;service ssh start&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;"> docker exec -it $container_id bash -c &quot;service sshd restart&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;"> docker exec -it $container_id sh -c &quot;service ssh start&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;"> docker exec -it $container_id sh -c &quot;/usr/sbin/sshd&quot;</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};