02
2025
07
01:37:41

把 docker 当 linux 虚拟机用

虚拟机一般比较耗资源,动辄几十G的大小,配置好的服务器也跑不了几台虚拟机。一般一台服务器跑30台虚拟机已经是极限了。

如果你只想拥有独立的IP,独立的运行环境(apt 软件包),并不需要独立的硬件配置(硬盘、内存)。此时可以考虑使用 docker 代替虚拟机。
比如需要搭建 dnsmasq 服务,提供内网 DNS 服务。正常情况下肯定需要分配几台虚拟机,安装 ubuntu ,然后安装 dns 服务。但如果使用 docker + macvlan,就可以在一台主机上“虚拟”出多个IP,并且每个 IP 都拥有完整的端口列表。比如每个 IP 的 UDP 53 端口都是独立的,相互不干扰。
所需命令:

$ docker network create \-d macvlan \--subnet=192.168.10.0/24 \--gateway=192.1678.10.254 \--opt parent=enp11s0f0 \mymacvlan
$ docker run --privileged \--ip 192.168.10.2 \--network mymacvlan \-d -it ubuntu:latest \/bin/bash
在 docker 中一样可以安装软件,与虚拟机差别不大。每个容器拥有独立的IP和软件环境,对外提供服务相互不干扰。对于轻量级的应用完全可以放在 docker 中运行,后续备份迁移也方便。整个容器大小和虚拟机比小多了,装了各种软件也才600M左右。
最佳实践:
1. 准备一个基础镜像,运行容器并装好各种常用软件。
比如 vim、ifconfig、nfs 等等



docker pull ubuntu:latest
docker run -d -it ubuntu:latest /bin/bash
docker exec -it c065acb0c02f /bin/bash

root@c065acb0c02f:/#


apt-get install screen
apt-get install vim
apt-get install python3
apt-get install pip
apt-get install net-tools
apt-get install iptables
apt-get install isc-dhcp-client
apt-get install iputils-ping
apt-get install bind9-utils
apt-get install git
apt-get install nfs-common
2. 将容器导出

docker export -o ubuntu_base.tar c065acb0c02f
3. 在目标宿主机上装载镜像

docker import ubuntu_base.tar ubuntu:net
当需要创建虚拟环境时就可以使用 ubuntu:net 镜像运行容器。基础镜像提供了 vim、python、ping、ifconfig、iptables 等常规软件,可以当成一个精简版的 linux 系统来使用,大小只有600M左右。
图片
全文完。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://www.hqyman.cn/post/12073.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: