Ras*_*lam 4 docker docker-compose docker-networking
当我运行时docker-compose up -d,docker 总是创建容器名称和网络名称,并以包含docker-compose.yml文件的文件夹名称为前缀。
我可以指定容器名称如下:
nginx:
container_name: nginx
build:
context: .
dockerfile: .docker/docker-nginx.dockerfile
Run Code Online (Sandbox Code Playgroud)
但是如何指定网络名称,以便它不会在其前面添加文件夹名称?
谢谢。
Docker 在当前文件夹名称前面加上使用 docker compose 文件创建的所有组件名称。
例如:如果包含 docker-compose.yml 文件的当前文件夹名称是 test,则所有卷、网络和容器名称都将附加到它上面。为了解决这个问题,人们早先提出了在 docker-compose 命令中使用-p标志的想法,但该解决方案并不是最可行的解决方案,因为在 -p 属性之后需要一个项目名称。然后将项目名称附加到使用 docker compose 文件创建的所有组件。
上述问题的解决方案是使用如下所示的name属性。
volumes:
data:
driver: local
name: mongodata
networks:
internal-network:
driver: bridge
name: frontend-network
Run Code Online (Sandbox Code Playgroud)
该卷可以在服务部分称为
services:
mongo-database:
volumes:
- data:/data/db
networks:
- internal-network
Run Code Online (Sandbox Code Playgroud)
上面的name属性将阻止 docker-compose 预先添加文件夹名称。
注意:对于容器名称,可以使用属性container_name
services:
mongo-database:
container_name: mongo
Run Code Online (Sandbox Code Playgroud)
您必须在 docker-compose 项目目录的根目录中放置一个“.env”文件。
COMPOSE_PROJECT_NAME=MyFancyProject
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅 Docker 文档:https : //docs.docker.com/compose/reference/envvars/
如果您不使用 docker-compose,则可以使用“ -p”参数将其设置为docker run.
| 归档时间: |
|
| 查看次数: |
3541 次 |
| 最近记录: |