老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

2024-01-13 17:05:25 19点赞 120收藏 10评论

“82年”的HP EliteBook 2570p部署了PVE,并且在PVE中尝试安装了Windows系统。

为了进一步地了解PVE系统,能够便捷使用,在网上找到各路大神们自发编写的PVE工具。

PVE毕竟是基于Linux的系统,不运行Dockers有点愧对于这个系统。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

PVE和Docker之间爱恨情仇

爬了好些官网的帖子,发现PVE跑Docker有以下三种方式:

  1. 在VM中运行Docker

  2. 在LXC中运行Docker

  3. PVE直接运行Docker

https://forum.proxmox.com/threads/tutorial-proxmox-with-docker-and-portainer.77275/

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

不太推荐直接运行Docker,因为PVE的好多优势它享受不到:如快照服务、备份、复制、转移等,另外Docker容易和PVE上运行的其它服务在网络上产生冲突。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

以上是某位大神在官方论坛的分析:
https://forum.proxmox.com/threads/proxmox-7-1-and-docker-lxc-vs-vm.105140/

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

总结起来:LXC中运行Docker操作灵活,资源占用少(有共享);VM中运行Docker的优势在于隔离

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

VM容易理解,那LXC是啥呢?

LXC

LXC是Linux环境(容器),是Linux发行版的内核(不同发行版的LXC不一样),小巧不易用(没有图形化界面)。官方介绍:https://linuxcontainers.org/lxc/introduction/

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

在LXC中安装Docker

PVE安装到电脑之后首先是换源,之前的文章都有涉及,这里忽略。

在PVE中安装LXC

下载CT模板。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

选择自己熟悉的系统。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

如果如下图显示的下载无法继续,可能是源有问题。停止之后换源,重新再来。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

更换CT模板的源(换清华):

cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

换源之后重启服务:

systemctl restart pvedaemon.service

重新下载,当显示OK时,说明下载完成。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

创建CT

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

ID号码自己取,主机名随便取,密码自主设置,不过这些都不能忘。无特权容器一定不能勾

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

模板选择之前下载的系统。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

磁盘看需求:部署BT的也许大一点。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

CPU核心数量看需求。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

内存也是按需,512有点捉襟见肘,如果电脑内存大的话,4096也可以考虑。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

网络中IPv4一定使用静态,并输入相应的网关地址。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

DNS默认就好,除非有特别的想法。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

最后汇总确认。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

创建完成。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

左侧的PVE下多了一个ID为200、名称为docker的容器。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

此时需要打开选项页面:

  • 嵌套:必选。

  • SMB和NFS:按需。

  • FUSE:看安装Dockers的需求。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

现在需要编辑其配置文件,路径如下(id就是之前安装LXC时自己取的)。
/etc/pve/lxc/[id].conf

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

在LXC容器配置文件下添加以下内容:

lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:

#以上三行是必备的,以下两行是用来开启容器tun转发的,不是必须的:

lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file

如果此LXC可以启动:点击启动,并打开控制台,看到docker login,表示安装成功。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

在LXC中安装Docker

登录LXC,用户名:root,密码:之前设置的密码。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

用PVE自己的控制台可以登录,但使用第三方的工具(如putty)是无法登录的。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

手动编辑下列两个文件:

vim /etc/ssh/sshd_config

vim /etc/ssh/ssh_config

上面的命令是使用另外安装的vim这个编辑软件,也可以使用系统自带的nano命令或者vi命令。分别更改:

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

然后重启ssh服务。

sudo service ssh restart

现在可以使用第三方工具(如Putty)登录LXC了。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

登录后使用命令行安装docker,关于docker的不同版本,以下两个链接叙述地非常清楚:
https://blog.csdn.net/a20251839/article/details/113868452
https://zhuanlan.zhihu.com/p/305572519

因为这个PVE安装的是Ubuntu的LXC,因此可以选择dockers.io:

sudo apt-get update sudo apt-get install docker.io

查看是否安装成功以及docker版本,键入:

sudo docker version老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

Docker安装Portainer并使用其管理Docker

原生的Docker使用命令行管理,对于小白而言非常不友好。Portainer是一个轻量级的容器管理工具,为Docker提供了直观的图形化用户界面。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

Portainer的作者是Portaier.io,6053537这位作者将其汉化了。目前最新版本从Portainer更名为Portainer-ce。

https://hub.docker.com/r/portainer/portainer-ce

https://hub.docker.com/r/6053537/portainer-ce

目前hub.docker.com访问不畅,因此将主页主要内容转述在下面:

一键安装:

docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock hub-mirror.c.163.com/6053537/portainer-ce

或者通过163.com安装:

docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock hub-mirror.c.163.com/6053537/portainer-ce

如网络不畅,可以先拉取到本地,然后本地安装。

docker pull 6053537/portainer-ce docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce

安装完成后就可以通过以下网址访问Portainer:
http://LXC.ip:9000

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

设置密码,创建admin用户。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

首页浮现在眼前:目前Docker有一个镜像,运行一个基于此镜像的容器——Portainer。

具体安装调试镜像容器,更威联通群晖类似,这里就忽略了。

LXC安装Samba服务

LXC是位于PVE中的一个子系统,局域网内其它Windows希望通过网络邻居访问,就需要在LXC中安装Samba服务。

sudo apt-get update sudo apt-get install samba

键入以下命令确定安装成功:

samba -V老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

创建一个需要匿名访问的共享文件夹(例如home目录下的share),可以这样操作:

sudo mkdir -p /home/share sudo chmod 777 /home/share

编辑samba配置文件:

sudo vim /etc/samba/smb.conf

增加以下内容:

[share] comment = Ubuntu File Server path = /home/share browsable = yes guest ok = yes read only = no public = yes writable = yes

重启Samba服务。

systemctl restart smbd systemctl restart nmbd

Windows通过网上邻居,通过LXC的ip地址就可以看到刚刚设置的匿名共享文件夹。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

如果部署BT的容器,可以将下载文件夹指向这个。

总结

  • Ubuntu的LXC很小巧:安装Portainer之后占用2.2G。

  • 操作以命令行为主,对于小白而言不友好,胆大心细必不可少!

  • 网上资料不少,不过内容冲突也常见,需要自己实践去芜存菁。

  • 小白编辑config等文件的时候推荐使用WinSCP,首先它使用跟windows类似的树形目录,其次它带有类似于Windows的notepad。

后记:关闭笔记本屏幕

PVE安装到了82年的笔记本,管理通过局域网内其它电脑的浏览器,因此笔记本屏幕常亮。网上找到修改grub关闭屏幕的方法。

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker

编辑 /etc/default/grub 文件

vim /etc/default/grub

更改以下内容为:

GRUB_CMDLINE_LINUX="consoleblank=300"

系统启动后300秒熄屏。保存后更新:

update-grub

重启后,PVE在5分钟后熄屏。按键鼠标可以唤醒!

老“机”伏枥——3代i5折腾PVE虚拟机之三——通过LXC部署并使用Docker
展开 收起
10评论

  • 精彩
  • 最新
  • 折腾那么多,一个unraid全搞定了。

    校验提示文案

    提交
    unraid好像是收费的吧

    校验提示文案

    提交
    收起所有回复
  • LXC容器出问题了,怎么修复啊

    校验提示文案

    提交
    这个问题太笼统了,要不创新安装LXC?

    校验提示文案

    提交
    把资料搞出来,重新安装了

    校验提示文案

    提交
    收起所有回复
  • 这两天在弄alpine下的docker,真的小,但真的资料少。

    校验提示文案

    提交
  • 2570p也是一代神机啊

    校验提示文案

    提交
  • 值友后续分享下您的docker应用吧

    校验提示文案

    提交
  • Debian也是一样设置方法吗

    校验提示文案

    提交
    求大佬出一期pve下-lxc-Debian-docker,挂载黑群晖NFS路径的教程,

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
120
扫一下,分享更方便,购买更轻松