docker run 主机网卡
时间: 2025-01-29 13:58:30 浏览: 44
### 如何在 `docker run` 时使用或配置主机网卡
为了使 Docker 容器能够访问外部网络并绑定到特定的主机网卡,可以采用多种方法来配置容器的网络接口。一种常见的方式是利用 Macvlan 网络驱动程序,它允许容器获得与物理机相同层次上的独立 IP 地址。
当创建一个新的基于 Macvlan 的 Docker 网络时,可以通过指定子网、网关以及父级接口(即要使用的具体网卡),从而让新启动的容器直接连入该网络,并继承相应的网络属性[^5]。
下面是一个具体的例子:
#### 创建MacVLAN网络
```bash
docker network create -d macvlan \
--subnet=192.168.31.0/24 \
--gateway=192.168.31.1 \
-o parent=eno1 docker-bridge
```
这段命令会建立一个名为 "docker-bridge" 的 Macvlan 类型网络,其子网范围为 192.168.31.0/24 ,默认网关设为 192.168.31.1 。参数 `-o parent=eno1` 表明此网络将会挂载于宿主机上名为 eno1 的网卡之上。
#### 使用自定义网络启动容器
一旦上述操作完成之后,在运行新的 Docker 实例时就可以指明加入刚才所建好的网络环境了:
```bash
docker run -it --rm \
--name=mycontainer \
--network=docker-bridge \
centos:latest bash
```
这条指令会让 CentOS 映像下的容器以交互方式启动,并将其接入之前构建出来的 “docker-bridge” 虚拟交换机内工作;这样做的好处在于不仅简化了内部通信流程,而且使得容器可以直接获取来自真实局域网内的资源和服务。
另外需要注意的是,如果希望给定某个固定的 IPv4 地址,则可以在调用 `docker run` 命令的时候加上额外选项 `--ip` 来设定静态 IP :
```bash
docker run -it --rm \
--name=mycontainer \
--network=docker-bridge \
--ip=192.168.31.225 \
centos:latest bash
```
这将确保每次重启后的容器都能保持相同的公网可见身份[^4]。
阅读全文
相关推荐


















