LXC安装docker打造轻量化pt下载机

2021-01-25 21:48:41 66点赞 443收藏 35评论


proxmox有个很实用的工具经常被忽略——LXC,使用pve配合LXC可以灵活地扩缩容容器,并且可以通过手机app或者浏览器实时监控系统状态。

Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。

虚拟机和lxc容器的区别

简单地说,lxc与虚拟机最大的不同就是是否使用宿主机内核。lxc在运行的时候相当于在宿主机的内核上运行另一个操作系统,并且将这部分程序隔离。虚拟机在运行的时候会虚拟cpu,并且在这个虚拟的cpu上运行虚拟机的内核,在内核的基础上再运行操作系统。LXC安装docker打造轻量化pt下载机 总之会慢不少。

lxc容器与docker容器的比较

docker也是一种容器技术,与lxc相比,lxc明显有一个弊端,lxc没有很多易用的镜像,浏览proxmox的lxc模板列表,基本都是各种linux发行版和部分比较热门的应用,比如nextcloud镜像。docker与之相比有海量的镜像资源,进入docker hub基本上能想到的软件都有docker镜像。LXC安装docker打造轻量化pt下载机

如果直接在proxmox宿主机上运行docker-engine,会让管理变得复杂,需要同时管理proxmox和docker。开一台虚拟机运行ubuntu并且安装docker解决了管理复杂的问题,又会有不少的资源浪费,在需要扩容的时候操作也比较复杂。因此在LXC中运行docker是一个比较好的解决方案。

在lxc中运行docker,docker里的应用其实还是运行在宿主机的内核上,因此这种套娃的性能损失挺小的,cpu性能的损失可以忽略。

在lxc中安装docker

加载内核模块

docker需要aufs和overlay两个内核模块,因为lxc运行在宿主机内核上,所以宿主机内核加载了这两个模块,lxc容器自然就可以使用他们。先在宿主机加载这两个模块

进入宿主机的命令行输入 modprobe aufs && modprobe overlay 加载模块

这个操作是临时的,为了每次开机自动加载需要修改/etc/modules。在后面添加两行

aufs

overlay


创建容器

点击右上角的创建容器

创建容器创建容器

系统我选择了ubuntu,然后按照指引一步步完成创建容器。

由于lxc的一些设定,直接运行docker会报错权限不足。所以需要修改容器选项。点击容器的选项找到最下面的签名一栏。

编辑签名编辑签名

勾选前两个按键和嵌套然后点击ok。

如图勾选如图勾选

这时容器已经创建完毕,可以直接开机安装docker了。

安装docker

进入系统以后先把软件源换成国内的镜像源,我选择使用阿里云镜像源。

阿里云软件源

配置完镜像源以后apt update一下。接着开始安装docker,如果使用其他系统可以参考官方的安装教程,我这里演示的是ubuntu的安装方法。

官方安装方法

sudo apt-get remove docker docker-engine docker.io containerd runc

sudo apt-get update

sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get update

sudo apt-get -y install docker-ce docker-ce-cli containerd.io

照着输命令就完成了docker的安装,最后验证一下是否安装成功。执行docker run hello-world,如果没有报错说明docker装好了。LXC安装docker打造轻量化pt下载机

LXC安装docker打造轻量化pt下载机

安装docker-compose

为了更方便地管理docker容器,安装一个docker-compse,这是一个docker的辅助工具。

sudo apt -y install python3-pip

pip3 install docker-compose

先不要急着装软件,做一个模板

辛苦那么久在lxc中安装了docker,可能以后都不想折腾了LXC安装docker打造轻量化pt下载机 ,不妨把现在的系统作为以后的起点LXC安装docker打造轻量化pt下载机 。先把容器关机,点击右上角的更多,点击下拉菜单的转换为模板。几秒钟过后转换就完成了。

下面是模板,上面是正在运行的容器下面是模板,上面是正在运行的容器

这个时候会发现刚才的虚拟机开机键不见了,先不要慌,还是点击右上角的更多,在下拉菜单选择克隆。在窗口中设置好想要的主机名,并且把模式改为链接克隆,这样可以节省很多硬盘空间LXC安装docker打造轻量化pt下载机

链接克隆链接克隆

点击克隆,一台新的容器出现了。擦电~开机~还是熟悉的味道,docker可以正常运行。

基础环境都搭建完成 开始安装qbittorrent与h5ai

可以参考我的设置无脑装

cd

mkdir downloads && mkdir qbconfig && mkdir h5aiconfig

nano docker-compose.yml

在编辑器中粘贴以下内容

---

version: "2.1"

services:

qbittorrent:

image: ghcr.io/linuxserver/qbittorrent

container_name: qbittorrent

environment:

- PUID=1000

- PGID=1000

- TZ=Asia/Shanghai

- WEBUI_PORT=8080

volumes:

- ./qbconfig:/config

- ./downloads:/downloads

network_mode: host

restart: unless-stopped

h5ai:

image: bin20088/h5ai

container_name: h5ai

environment:

- HTPASSWD=true

- HTPASSWD_USER=smzdm_timzhong

- HTPASSWD_PW=pass2word3

volumes:

- ./downloads:/h5ai

- ./h5aiconfig:/config

ports:

- 80:80

restart: unless-stopped

执行:docker-compose up -d 稍等一会大功告成。

LXC安装docker打造轻量化pt下载机

可以直接在浏览器访问 http://你的容器ip:8080 进入qbittorrent控制台。默认账户admin,默认密码adminadmin。初次进入是英文界面,在设置里可以更改为中文。

修改语言修改语言


访问 http://你的容器ip 查看所有下载好的文件。


写在最后

LXC安装docker打造轻量化pt下载机 还记得前面那个模板吗,用这个模板还能轻松地克隆更多容器,探索更多玩法。欢迎关注,后续还有很多有关proxmox虚拟机和容器的文章。更多教程文章会看情况搬运一部分来张大妈LXC安装docker打造轻量化pt下载机

LXC安装docker打造轻量化pt下载机

在升级6.3-3版本后,会出现docker无法启动的问题,需要将lxc降级为上一个版本。 依次输入以下命令 1. apt-get install lxc-pve=4.0.3-1 2. apt-mark hold lxc-pve

展开 收起
35评论

  • 精彩
  • 最新
  • 感觉没有特别大的意义,不如用虚拟机跑个ubuntu server 或者rancher os 之类的方便。而且只有vm可以在多台proxmox host构成的cluster里做live migration,对于纯docker搞高可用服务还是很方便的。多年proxmox后已经基本彻底抛弃了lxc

    校验提示文案

    提交
    开虚拟机吃内存和cpu,开pt下载没有性能需求和迁移需求用lxc还不错,实际生产lxc确实没啥用,我现在用的集群里只有一台lxc用来跑kubectl

    校验提示文案

    提交
    收起所有回复
  • docker用X86来跑有些浪费了,感觉ARM就足够了

    校验提示文案

    提交
    [高兴] 其实这是为后面的最终形态all in one文章做铺垫

    校验提示文案

    提交
    哦,这样。OMV也不错,不过觉得arm跑跑也就够了,x86的性能可以应付群晖。

    校验提示文案

    提交
    收起所有回复
  • 看过国外的网友测试,lxc的磁盘性能貌似没有vm高,大佬有没有测过这个?

    校验提示文案

    提交
    曾经测ceph的时候对比过,容器比虚拟机稍微快一点,原理上都是lvm创建一个logic volume,速度应该没太大区别。虚拟机更快我猜是虚拟机系统用了内存缓存加速?

    校验提示文案

    提交
    我刚才去看了一篇关于容器性能的论文,在数据库高强度fsync的场景下,由于共用了一个内核,不同容器的数据库之间写入会存在资源的竞争,最差的情况下延迟是vm的接近4倍。但是在低fsync的场景下lxc的io性能要好于vm不少

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 容器里面装容器,博主🐮批 [喜极而泣]

    校验提示文案

    提交
    好管理,proxmox有好用的手机管理软件,还有模板方便折腾

    校验提示文案

    提交
    手机管理软件是哪个?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 小白进来一看蒙圈了。看样子前面的那个基础工具也得翻来看看。

    校验提示文案

    提交
    proxmox安装在站内已经有很多人写过了,参考一下那些大佬的安装教程吧

    校验提示文案

    提交
    收起所有回复
  • 最开始我也用pve,现在转unraid了

    校验提示文案

    提交
    unraid好,就是贵

    校验提示文案

    提交
    unraid只能安装在优盘上,难搞。。。

    校验提示文案

    提交
    收起所有回复
  • @TimZhong 前两天尝试了一下,今天升级了pve3.3-3后 docker无法启动,重做模板也不行。pve2是没有问题的,请问是否pve3不支持lxc套娃了?

    校验提示文案

    提交
    6.2.3-3确实存在问题

    校验提示文案

    提交
    说错了,6.3-3

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 今天装完,还没把harbor搭起来,感觉以后家里没几个树莓派上跑k8s都不好意思说自己是从业者了 [喜极而泣] [喜极而泣] [喜极而泣]

    校验提示文案

    提交
  • 之前在这个地方尝试过安装hass.io 但是失败了。后来无奈还是装了个debain来装hass.io

    校验提示文案

    提交
  • 然后装几个系统,就可以搞起k8了

    校验提示文案

    提交
  • 大佬,还招运维工程师吗?

    校验提示文案

    提交
  • lxc挂载USB设备真费劲,折腾死我了

    校验提示文案

    提交
  • docker 在linux上基于lxc,底层技术依赖。二者不是对等的关系

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

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