Docker新手,所以这可能是基本的,但在我谷歌搜索后,我仍然没有找到解决方案
我有一个docker-compose.yml文件,我正在尝试运行(该文件的版本是"3.4",但我得到了错误:
"The compose file is invalid because:
networks.default value Additional properties are not allowed ('name' was unexpected)
这是docker compose文件中失败的部分:
networks:
default:
driver: bridge
name: nssams_bridge
当我运行(我在Ubuntu 20.04上(
docker-compose --version
它说版本是1.25.0,我不确定这是否是一个足够高的版本来支持3.4,这是我的猜测。
但我已经尝试过多种方式更新docker compose,但似乎都不起作用。
我试过:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
和
sudo apt upgrade docker-compose
以及
sudo pip install docker-compose
但是在所有这些之后,docker compose-version命令仍然返回1.25.0,构建未知的
那么我该如何升级docker compose版本呢?
name:
选项是在Compose文件格式3.5中添加的,因此您的3.4太旧了一步。我会使用3.8或3.9,除非你有特定的理由使用旧的东西:
version: '3.8' # networks: { name: } requires a minimum of 3.5
networks:
default:
driver: bridge
name: nssams_bridge
对于许多实际用途,您也可以让Compose选择网络的名称,因为您很少直接与它交互。如果需要手动docker network
命令或从另一个Compose文件引用网络,Compose将使用当前目录的名称作为项目名称,将网络命名为projectname_default
。如果这对你来说是可以接受的,那么你可以完全删除这个networks:
块。