我的docker容器运行在一个本地网络中,称为my_local_network。为了确保网络存在,每个构建脚本都以如下内容开始:
docker network create --driver bridge my_local_network
这样可以正常工作。如果网络不存在,则会创建一个网络,如果不存在,则什么都不会发生。除了错误消息:
Error response from daemon: network with name my_local_network already exists
有没有办法告诉docker只在网络不存在的情况下创建网络?
7条答案
按热度按时间w6mmgewl1#
根据@AndyTriggs的答案,一个简洁(正确)的解决方案是:
cs7cruho2#
目前没有办法强制或忽略它,但您可以使用shell -
docker network create --driver bridge my_local_network || true
这样,每当您的构建脚本执行时,如果没有网络,它将创建一个网络,它将返回true,而不会出现任何命令失败,以便可以执行构建脚本的其余部分。
1aaf6o9v3#
您可以先测试网络是否存在,如果不存在则创建网络。例如:
将echo替换为您的network create命令:
zbsbpyhn4#
你也可以这样做:
优点:
事实上,它与@Andy Triggs的答案下的评论中@yktoo提供的解决方案非常相似。
mzaanser5#
您可以像下面这样简单地使用
grep
,而不会打印出任何错误:在本例中,我假设已经创建的一个网络可以具有与我的不同的子网配置。
对于您的情况,将:
yrefmtwq6#
如果您可以使用PowerShell
已在PS core 7.0.3上试用-此版本适用于Linux。
0aydgbwb7#
@wisniewski28的一个稍微简洁的版本回答: