我创建了一个新的Docker网络(macvlan https://docs.docker.com/engine/userguide/networking/get-started-macvlan/)
如何告诉Docker在创建新容器时使用这个网络作为默认网络(而不是桥接网络)? 我想省略每个新容器的--net参数。
如何告诉Docker在创建新容器时使用这个网络作为默认网络(而不是桥接网络)? 我想省略每个新容器的--net参数。
docker-compose
,可以在yml
文件中使用networks
键。以下示例将mongo指定为使用“pinguine”作为默认网络:version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
networks:
- project-network
networks:
project-network:
name: pinguine
/etc/docker/daemon.json
并添加以下配置。{
"bridge": "my_network"
}
这种方式默认情况下将使用my_network
。
Docker提供了不同的网络驱动程序,如bridge、host、overlay和macvlan。 bridge是默认设置。
要更改您的默认网络驱动程序:
编辑或创建Docker守护进程的配置文件:
# nano /etc/docker/daemon.json
添加以下内容:
{
"default-address-pools":
[
{"base":"10.10.0.0/16","size":24}
]
}
重启 Dockerd:
# service docker restart
使用 --driver 或 -d 参数创建一个新的网络:
使用 --network 参数运行您的 Docker 镜像以使用您新创建的网络。
$ docker network create foo
$ docker network inspect foo | grep Subnet
"Subnet": "10.10.1.0/24"