在容器中安装docker
LXC中安装docker
proxmox有个很实用的工具经常被忽略——LXC,使用pve配合LXC可以灵活地扩缩容容器,并且可以通过手机app或者浏览器实时监控系统状态。
虚拟机和lxc容器的区别
简单的说,lxc与虚拟机最大的不同就是是否使用宿主机内核。lxc在运行的时候相当于在宿主机的内核上运行另一个操作系统,并且将这部分程序隔离。虚拟机在运行的时候会虚拟cpu,并且在这个虚拟的cpu上运行虚拟机的内核,在内核的基础上再运行操作系统。 总之会慢不少。
lxc容器与docker容器的比较
docker也是一种容器技术,与lxc相比,lxc明显有一个弊端,lxc没有很多易用的镜像,浏览proxmox的lxc模板列表,基本都是各种linux发行版和部分比较热门的应用,比如nextcloud镜像。docker与之相比有海量的镜像资源,进入docker hub基本上能想到的软件都有docker镜像。
如果直接在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。在后面添加两行
1 | aufs |
配置lxc容器
点击对应容器,点击选项,编辑签名,在按键和嵌套后面打勾。
安装docker
以下是ubuntu安装docker的操作
1 | sudo apt-get remove docker docker-engine docker.io containerd runc |
照着输命令就完成了docker的安装,最后验证一下是否安装成功。如果没有报错说明docker装好了。
1 | sudo docker run hello-world |
安装docker-compose
1 | sudo apt -y install python3-pip |