创建macvlan网络
- sudo docker network create \
- --driver macvlan \
- --subnet=<你的宿主机子网,如192.168.1.0/24> \
- --gateway=<你的宿主机网关> \
- -o parent=物理接口名称,如eth0 \
- my-macvlan-1
创建容器
- sudo docker run -itd \
- --name container-5 \
- --network=my-macvlan-1 \
- --ip=192.168.0.65 \
- -v /home/norten/Desktop/SmbShare:/home/public/tools/MediumBoxBase \
- --dns 127.0.0.53 \
- --dns 8.8.8.8 \
- --dns 114.114.114.114 \
- --dns-opt="ndots:0" \
- --dns-opt="edns0" \
- ubuntu
-i:表示以交互模式运行容器,保持标准输入(STDIN)打开,使得我们可以与容器进行交互,比如通过命令行输入命令。
-t: 表示为容器分配一个伪终端(pseudo-TTY),使得它看起来像一个终端界面,适合交互使用。
-d: 后台运行(-d),让容器在后台运行,即守护进程模式,不会直接把容器的输出显示到当前终端。.
--name 容器的名字
--network 容器连接的网络,创建容器必须连接一个网络,这里用macvlan模式
--ip 设定容器的ip,使用ip addr show 查看所有网络接口的详细信息
-v 表示将本地路径
/home/norten/Desktop/SmbShare挂载到容器的路 径/home/public/tools/MediumBoxBase--dns 127.0.0.53 表示设置为和宿主机一样的DNS
--dns-opt="ndots:0"和--dns-opt="edns0"是为了匹配Docker生成的默认/etc/resolv.conf中的选项,确保DNS解析行为一致。 DNS选配,不一定要配置,建议是不配置。
Docker 容器会挂载 /home/norten/Desktop/SmbShare(即 SMB 共享的内容)到容器内的 /home/public/tools/MediumBoxBase 路径下。如果希望挂载在系统启动时自动完成,还需要在 /etc/fstab 中添加相应的条目。
- sudo docker run -itd \
- --name container-1 \
- --network=net-1 \
- --ip=192.168.0.61 \
- -v /home/norten/Public/tools:/mnt \
- ubuntu