随着人民生活水平的提高,相信大家手里都有一堆正在吃灰的VPS。这些VPS一般都是在商家促销时屯的,没有建站等正式的用途,食之无味但又弃之可惜。
其实,用吃灰的VPS自己开NAT当IDC也是个不错的选择,既让吃灰机器派上了用场,又能赚回一些买VPS花的钱。而Docker有着运行轻便、启动快速、容易上手等特点,很适合吃灰VPS。本篇文章详细介绍宿主机的配置教程。
想看看效果怎样吗?开始前先到Tzchz's Hosting逛逛吧~
零、准备步骤
- 一台或几台吃灰的VPS
- 建议使用Ubuntu20系统
- 防火墙提前开放所有端口(可以屏蔽特定端口)
- 使用sudo su切换到root权限
一、安装Docker
请在https://docs.docker.com/engine/install/#server选择自己的系统版本,按教程安装。
二、设置NAT容器硬盘大小
1.设置硬盘大小
echo "OPTIONS=--storage-driver=devicemapper --storage-opt dm.basesize=10G" >>/etc/default/docker
注:本文命令框中加粗斜体的内容是命令中需要依自身需求修改的参数。
此处10G为每个NAT容器的硬盘大小,视情况设定。
2.修改配置文件
vi /lib/systemd/system/docker.service
在[Service]下加入一行:
EnvironmentFile=-/etc/default/docker
将ExecStart一行改为:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $OPTIONS
3.重启Docker服务
systemctl daemon-reload
systemctl restart docker
三、部署限速系统
注:本案例中只限速入站流量
docker run -d \
--name tc-docker \
--network host \
--privileged \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/docker/netns:/var/run/docker/netns:shared \
codyguo/tc-docker
四、(可选)制作系统镜像
建议不用折腾,用我这个tzchz/baseos:u20amd就可以。(Ubuntu20+AMD架构)
如果你需要用其他系统(比如CentOS7),或者你的服务器不是AMD架构(比如甲骨文的ARM),那么需要自己制作一个。下文以CentOS7为例。
1.创建容器环境
docker run --name baseos -i -t centos:7 /bin/bash
centos:7为所需系统和版本。
2.进入容器命令行,安装SSH等必需软件
yum update
yum install openssh-server passwd -y
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
3.开启密码登陆
vi /etc/ssh/sshd_config
将PermitRootLogin改为yes,UsePAM改为no。
exit
4.打包生成镜像
docker login
docker commit baseos dockerusername/baseos:c7
docker push dockerusername/baseos:c7
dockerusername/baseos:c7为Docker Hub用户名、镜像名和版本号。
docker rm baseos
五、添加管理脚本
echo '#!/bin/bash' >>/create.sh
echo ' read -p "ContainerName:" cname' >>/create.sh
echo ' read -p "UserID: " port' >>/create.sh
echo ' docker run --name ${cname} -it -d -p ${port}0:22 -p ${port}1-${port}9:${port}1-${port}9 --cpus=0.5 --memory=512M --restart=always --label "org.label-schema.tc.enabled=1" --label "org.label-schema.tc.rate=1mbps" --label "org.label-schema.tc.ceil=2mbps" tzchz/baseos:u20amd sh -c "/etc/init.d/ssh start && tail -f /dev/null"' >>/create.sh
echo ' docker exec -i ${cname} passwd' >>/create.sh
自行修改vCPU、内存、带宽、容器镜像等参数。
echo "alias do-1='bash /create.sh'" >>~/.bashrc
echo "alias do-2='docker stats $(docker ps --format={{.Names}})'" >>~/.bashrc
echo "alias do-3='docker stats --no-stream $(docker ps --format={{.Names}})'" >>~/.bashrc
source ~/.bashrc
六、IDC上线
- 创建Docker容器命令:
do-1
依次输入容器名、端口号和密码。
其中端口号建议为四位数,若输入为1001,则SSH端口为10010,Web端口为10011~10019。
- 监控各容器的资源占用:
do-2
- 输出一次各容器的资源占用(不刷新):
do-3
七、准备跑路
八、最后
想看看效果怎样?到Tzchz's Hosting看看吧~最低2元一杯~
- 【原创】转载请注明出处
文章评论