热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Docker创建网络应该忽略现有网络

如何解决《Docker创建网络应该忽略现有网络》经验,为你挑选了3个好方法。

我的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只创建网络,如果它不存在?



1> vivekyad4v..:

目前没有办法强制它或忽略它但你可以使用shell摆脱这个问题 -

docker network create --driver bridge my_local_network || true

这样,无论何时构建脚本执行,如果没有网络,它将创建一个其他它将返回true而不会发生任何命令失败,以便构建脚本的其余部分可以执行.


如果`docker network create ...'本身失败,则有缺点,您的脚本会认为一切都很好。

2> yktoo..:

基于@AndyTriggs的回答,一个简洁(和正确)的解决方案是:

docker network inspect my_local_network >/dev/null 2>&1 || \
    docker network create --driver bridge my_local_network



3> Andy Triggs..:

您可以首先测试网络的存在,如果不存在则创建它。例如:

docker network ls|grep my_local_network > /dev/null || echo "network does not exist"

将echo替换为network create命令:

docker network ls|grep my_local_network > /dev/null || docker network create --driver bridge my_local_network


`docker网络检查my_local_network> / dev / null || docker network create --driver bridge my_local_network`,无需grep。如果您有一个名为“ my_local_network_1”的网络,则您的命令也会出现异常。
谢谢@yktoo-挺整齐的。我曾经考虑过检查,但是出于某种原因,当时还没有考虑将其重定向到/ dev / null,并且不希望有大量检查信息产生副作用。
推荐阅读
author-avatar
手机用户2502853881
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有