<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="通过Docker命令批量或单独开设NAT服务器以及维护(简称母鸡开小鸡)">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2023-05-23 08:12<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
通过Docker命令批量或单独开设NAT服务器以及维护(简称母鸡开小鸡)


一键虚拟化：https://virt.spiritlhl.net/


Github：https://github.com/spiritLHLS/docker


更新：https://github.com/oneclickvirt/docker


通过docker批量或单独开设NAT服务器(Bulk or individual NAT server provisioning via docker)


默认使用debian系统，每个容器自带1个外网ssh端口，25个内外网一致端口


默认创建的是非特权容器，且不挂载与宿主机的docker的守护进程之间的通信，所以宿主机创建的docker虚拟化的NAT服务器内无法再嵌套虚拟化docker


由于只是在宿主机进行了CPU和内存的限制未在容器内使用cgroup驱动，所以在容器内使用服务器测试脚本检测容器的可用资源是无效的，显示的会是宿主机的资源


由于大部分云服务器xfs文件系统不启用pquota选项，所以默认共享宿主机硬盘，无法限制每个容器的磁盘大小


配置要求：




系统可安装docker即可用，网络能连接Github的raw界面就能用，硬件配置只要不拉跨就行，空闲硬盘有3G就行


推荐在开设NAT服务器前先增加部分SWAP虚拟内存，避免突发的内存占用导致母鸡卡死




环境预设


下载预制脚本




XML/HTML代码


    curl -L https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/pre_build.sh -o pre_build.sh &amp;&amp; chmod +x pre_build.sh &amp;&amp; bash pre_build.sh




单独开设


下载脚本




XML/HTML代码


    curl -L https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/onedocker.sh -o onedocker.sh &amp;&amp; chmod +x onedocker.sh




运行




XML/HTML代码


    ./onedocker.sh name cpu memory password sshport startport endport system




目前system仅支持选择alpine或debian，默认是debian


示例


将开设1核512MB内存，root的密码是123456，SSH端口映射至外网25000，批量映射的端口区间为34975到35000，此区间内外网端口一致，系统为debian




XML/HTML代码


    ./onedocker.sh test 1 512 123456 25000 34975 35000 debian





XML/HTML代码


    删除示例

    docker rm -f test

    rm -rf test

    ls

    进入示例

    docker exec -it test /bin/bash

    查询信息

    cat 容器名字

    输出格式

    容器名字 SSH端口 登陆的root密码 核数 内存 外网端口起 外网端口止







批量开设


批量多次运行继承配置生成，生成多个时为避免SSH连接中断建议在screen中执行。




XML/HTML代码


    curl -L https://raw.githubusercontent.com/oneclickvirt/docker/main/scripts/dockers.sh -o dockers.sh &amp;&amp; chmod +x dockers.sh &amp;&amp; bash dockers.sh




卸载所有docker容器和镜像




XML/HTML代码


    docker rm -f $(docker ps -aq); docker rmi $(docker images -aq)

    rm -rf dclog

    ls







一键创建Docker小鸡


GitHub：https://github.com/AKEBI-NUKUI/DockerNATVPS 


安装docker后，下载仓库，选择系统，直接运行Create.sh创建,批量运行请 ./Add_more.sh


Alpine母鸡：




XML/HTML代码


    curl -L https://raw.githubusercontent.com/AKEBI-NUKUI/DockerNATVPS/main/Alpine/Add_more.sh -o Add_more.sh &amp;&amp; chmod +x Add_more.sh &amp;&amp; bash Add_more.sh







Debian母鸡：




XML/HTML代码


    curl -L https://raw.githubusercontent.com/AKEBI-NUKUI/DockerNATVPS/main/Debian/Add_more.sh -o Add_more.sh &amp;&amp; chmod +x Add_more.sh &amp;&amp; bash Add_more.sh




alpine3.x升级到3.18最新版一键脚本：




XML/HTML代码


    curl -L https://naiba.de/alpine-update.sh -oalpine-update.sh &amp;&amp; chmod +x alpine-update.sh &amp;&amp; bash alpine-update.sh




升级完成后检查版本：




XML/HTML代码


    cat /etc/alpine-release




如果升级顺利，您可以看到它已升级到最新支持的版本，通常为 3.18.0。


也可以手动升级，需要修改 etc/apk/repositories 为最新版本。




XML/HTML代码


    https://mirrors.ustc.edu.cn/alpine/latest-stable/main

    https://mirrors.ustc.edu.cn/alpine/latest-stable/community




然后执行升级命令：




XML/HTML代码


    apk update

    apk upgrade




其实就是给源中版本换成 latest-stable 最新稳定版，让他自己检测升级。
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
