小鸡生小鸡 用Docker做跑路云吧

实用教程 admin 来源:原文链接 3年前 (2022-05-08) 1375次浏览 0个评论

突然产生了一个邪恶的念头,那说干就干吧

准备资源:
一个VPS(当然不能是Docker/OVZ/LXC生出来的啦)
没了。。。就那么简单粗暴

安装Docker

wget -qO- get.docker.com | bash

装完之后输入docker version即可看到docker的版本 确认已经装好了

修改Docker Storage Driver为devicemapper(可选)

这不是必须的,但是这样限制小鸡的小鸡的硬盘时会方便一点,或者用xfs的磁盘配额也是一样的
如果都不使用则小鸡的小鸡的硬盘可以撑爆小鸡的硬盘

vim /etc/default/docker

加入一行,此处dm.basesize的大小为小鸡的小鸡可用的硬盘

OPTIONS=--storage-driver=devicemapper --storage-opt dm.basesize=100G

保存退出

vim /lib/systemd/system/docker.service

在[Service]中加入一行

EnvironmentFile=-/etc/default/docker

并把
ExecStart改为

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $OPTIONS

完成后重启docker

systemctl daemon-reload
systemctl restart docker

然后就可以看到Storage Driver: devicemapper,此时就可以很方便的给小鸡的小鸡设置硬盘上限了

制作开小鸡用的Docker镜像

去Docker Hub上挑一个你中意的BaseOS
https://hub.docker.com/search?q=&type=image&category=os
这边以Fedora为例
docker pull fedora:34

拉下来之后就可以在images里看到了
docker image ls

然后就需要给image加入sshd
首先创建一个container
docker run -i -t fedora:34 /bin/bash

稍等片刻就进入了fedora34的bash
安装sshd
dnf install openssh-server passwd

生成ssh key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

修改root密码
passwd

开启root登录
nano /etc/ssh/sshd_config

加入
PermitRootLogin yes
UsePAM no

退出容器
exit

然后就可以把刚才的容器做成镜像了
(别照搬我的docker用户名和镜像id哦)
docker commit 1fe913fd8151 zjl88858/baseos:fedora34
docker login -u zjl88858
docker push zjl88858/baseos:fedora34

制作完成之后 之前的容器就没有用了 删掉吧
如果你有洁癖 可以把fedora34也给删掉
docker rm 1fe913fd8151

这就是完成之后的效果

开第一个小鸡生出来的小鸡、使用端口转发、限制资源

开小鸡的命令很简单
docker run -d -p 2201:22 -p 10000:10000 -p 10001:10001 -p 10002:10002 --cpus=0.5 --memory=128M zjl88858/baseos:fedora34 /usr/sbin/sshd -D

注释:我实测下来,这样开出的小鸡,Docker容器里使用systemctl命令报错(System has not been booted with systemd as init system)

可使用如下命令运行容器

docker run -d -p 2201:22 -p 10000:10000 -p 10001:10001 -p 10002:10002 --privileged=true --cpus=0.5 --memory=128M zjl88858/baseos:fedora34 /sbin/init -D

-p是端口转发
以上述命令为例 我把2201转发到了小鸡的22端口(SSH) 10000-10002原样转发预留给小鸡使用
当然 如果端口很多 可以写成端口段
例如10000-10002这样
–cpus为小鸡能使用的CPU资源 单位为核
–memory为小鸡能使用的内存资源 单位可以为M G T
开完之后可以看一下小鸡(容器)的列表
docker ps -a

然后就可以尝试用ip:2201连接ssh了

完结撒花~

其他实用命令

查看小鸡cpu/内存
docker stats

查看小鸡硬盘
docker df -v

啥?你要看更详细的?
docker exec -t -i [容器id] /bin/bash

原文链接

参考文献

1.Docker容器里使用systemctl命令报错(System has not been booted with systemd as init system)

 

 

 

 


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:小鸡生小鸡 用Docker做跑路云吧
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址