因此,我尝试使用一些最新的compose 3.5功能设置一些docker-compose脚本。最重要的是能够命名网络。因此,我最终要一遍又一遍地复制一些容器,例如Postgres数据库,以及我使用的各种应用程序。我的目标是能够为Postgres等具有命名网络的docker-compose脚本,然后我可以将其他具有自己的docker-compose脚本的应用添加到其中。这样感觉更可重用。
无论如何,这是我正在使用的docker-compose脚本:
version: '3.5'
services:
postgres:
image: postgres:11
container_name: postgres
networks:
- pg_network
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=user
ports:
- 5432:5432
volumes:
- ~/.postgresql/data:/var/lib/postgresql/data
- ~/.postgresql/init:/docker-entrypoint-initdb.d
pgadmin:
image: dpage/pgadmin4
container_name: pgadmin
networks:
- pg_network
ports:
- 5433:80
environment:
- PGADMIN_DEFAULT_EMAIL=user@gmail.com
- PGADMIN_DEFAULT_PASSWORD=password
volumes:
- ~/.postgresql/pgadmin:/var/lib/pgadmin
networks:
pg_network:
name: pg_network
我正在尝试使用Docker Compose 3.5中新增的“自定义名称”功能。有关文档,请参见以下链接:https://docs.docker.com/compose/networking/
但是,当我尝试运行docker-compose up -d
时,出现以下错误:
ERROR: The Compose file './docker-compose.yml' is invalid because:
networks.pg_network value Additional properties are not allowed ('name' was unexpected)
我不确定自己在做什么错。我在Ubuntu 18.04上,我正在使用sudo
运行docker命令(因为这似乎是Ubuntu的要求)。
这是我的Docker和Docker Compose版本:
Docker version 18.09.2, build 6247962
docker-compose version 1.17.1, build unknown
我曾尝试使用APT对其进行升级,但它表示它们是最新的。
因此,或者我在撰写脚本中犯了一个错误,或者我的Docker版本有些问题。我将不胜感激。谢谢。