可以实现局域网内虚拟一台linux服务器,效果类似虚拟机,用docker实现,需要注意,这种方式和宿主机是不能通讯的,但是可以和局域网内的设备通讯
觉得好用可以加作者wx: lx-ivan
编写dockerfile
vim Dockerfile
FROM ubuntu
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y systemd vim curl tree nginx iproute2 sudo
CMD ["/lib/systemd/systemd"]
然后,再运行 docker build -t ubuntu-systemd .
编译镜像
用macvlan创建网络
macvlan会创建一个虚拟桥接网络
docker network create -d macvlan --subnet=192.168.101.0/24 --gateway=192.168.101.1 -o parent=eno2 23net
–subnet 是子网网段,可以设置和局域网一个ip网段
–gateway是子网网关
-o parent=eno2 桥接网卡名称,我的网卡是eno2
运行docker
macvlan会创建一个虚拟桥接网络
docker run -d --gpus all --network=23net --ip=192.168.101.26 --privileged --restart=always -it ubuntu-systemd
–gpus all 开启gpu,如果宿主机没有gpu,可以不加
–network=23net 指定加入刚刚创建的macvlan网络
–privileged 升级为特权容器,一定要加这个,不然systemd运行不了
–restart=always 宿主机重启容器自动重启
在docker里面安装docker
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl 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 install -y docker-ce
用systemctl start docker
启动docker
完美~
觉得好用可以加作者wx: lx-ivan