全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 5665|回复: 38
打印 上一主题 下一主题

【教程向】鸡鸡复鸡鸡 小鸡生小鸡 用Docker做跑路云吧

  [复制链接]
跳转到指定楼层
1#
发表于 2021-7-27 22:16:11 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 龟龟酱 于 2021-7-28 03:18 编辑

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

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

1.安装Docker
因为我这边用的是Ubuntu,所以就直接APT装了
  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  2. echo \
  3. "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  4. $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. apt update && apt install docker-ce docker-ce-cli containerd.io
复制代码

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


2.修改Docker Storage Driver为devicemapper(可选)

这不是必须的,但是这样限制小鸡的小鸡的硬盘时会方便一点,或者用xfs的磁盘配额也是一样的
如果都不使用则小鸡的小鸡的硬盘可以撑爆小鸡的硬盘
  1. nano /etc/default/docker
复制代码

加入一行,此处dm.basesize的大小为小鸡的小鸡可用的硬盘
OPTIONS=--storage-driver=devicemapper --storage-opt dm.basesize=100G

保存退出
  1. nano /lib/systemd/system/docker.service
复制代码

在[Service]中加入一行
EnvironmentFile=-/etc/default/docker

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

完成后重启docker
  1. systemctl daemon-reload
  2. systemctl restart docker
复制代码

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


3.制作开小鸡用的Docker镜像
去Docker Hub上挑一个你中意的BaseOS
https://hub.docker.com/search?q=&type=image&category=os
这边以Fedora为例
  1. docker pull fedora:34
复制代码

拉下来之后就可以在images里看到了
  1. docker image ls
复制代码


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

稍等片刻就进入了fedora34的bash
安装sshd
  1. dnf install openssh-server passwd
复制代码

生成ssh key
  1. ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
复制代码

修改root密码
  1. passwd
复制代码

开启root登录
  1. nano /etc/ssh/sshd_config
复制代码

加入
PermitRootLogin yes
UsePAM no

退出容器
  1. exit
复制代码

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

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

这就是完成之后的效果


4.开第一个小鸡生出来的小鸡、使用端口转发、限制资源
开小鸡的命令很简单
  1. 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
复制代码

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


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

完结撒花~

其他实用命令
查看小鸡cpu/内存
  1. docker stats
复制代码

查看小鸡硬盘
  1. docker df -v
复制代码

啥?你要看更详细的?
  1. docker exec -t -i [容器id] /bin/bash
复制代码

直接进去看咯

想试试这样开的小鸡有多不靠谱?点签名咯~3元一杯
(请勿存放重要数据 试完可以私信我退款)
2#
 楼主| 发表于 2021-7-27 22:21:17 | 显示全部楼层
Dwight 发表于 2021-7-27 22:18
你是开神龟Roll那个龟吗

3#
 楼主| 发表于 2021-7-27 22:43:37 | 显示全部楼层
cicvc 发表于 2021-7-27 22:42
ip绑定,解析,分配,镜像搞定ssh,这些玩意儿呢???

不是写了持续更新。。。我在码字啊
4#
 楼主| 发表于 2021-7-27 22:53:45 | 显示全部楼层
ApkB 发表于 2021-7-27 22:31
就这?你就给我看这?

还在码字 不要急不要急
5#
 楼主| 发表于 2021-7-27 23:59:32 | 显示全部楼层
youarehorse 发表于 2021-7-27 23:58
docker的端口得映射到宿主机端口,两个容器能共用一个宿主机端口?

不能 所以第四步给容器做了端口转发
6#
 楼主| 发表于 2021-7-28 00:02:40 | 显示全部楼层
jiangyi 发表于 2021-7-27 22:17
完了吗?没完的话我插一腿

完了 踢你一脚
一起踢:
@dole
@drivefuse
@atmo
7#
 楼主| 发表于 2021-7-28 00:33:08 | 显示全部楼层
Lemon0 发表于 2021-7-28 00:25
支持euserv小鸡吗,euserv好像支持docker

理论上用kvm/xen/hyperv/vmware/virtualbox开的小鸡都是可以用的
8#
 楼主| 发表于 2021-7-28 10:33:54 | 显示全部楼层
Lemon0 发表于 2021-7-28 00:35
euserv好像是lxc架构,但有人也能运行docker

查了一下 lxc确实是可以运行docker的
9#
 楼主| 发表于 2021-7-28 11:29:17 | 显示全部楼层
zoenreo 发表于 2021-7-28 11:13
然而限制不了硬盘大小

第二步就是啊。。。
或者overlay2+xfs的配额也能限啊
10#
 楼主| 发表于 2021-7-28 17:59:26 | 显示全部楼层
lijihede 发表于 2021-7-28 16:41
能限制每个小鸡的硬盘大小吗?还是说只能限制DOCKER占用的总容量?

这个限制的就是单个
反而总量用devicemapper不好限
很麻烦 我试了所以没写
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-13 05:43 , Processed in 0.063166 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表