Docker-compose --isolation=hyperv 标签

dan*_*man 5 hyper-v docker docker-compose

我在启动容器时必须使用 --isolation=hyperv 配置(使用 Windows Server 17.09)。

例如:

 docker run -it -d -p 2222:80 --isolation=hyperv packagelocatorservice
Run Code Online (Sandbox Code Playgroud)

我需要调出 4 个容器,所以我使用 docker-compose.yml 文件和命令 docker-compose up

version: '3'

services:

web:
image: web
ports:
- 4444:80
build:
context: ./web/webapi
dockerfile: Dockerfile

uimetadataservice:
image: uimetadataservice
ports:
- 1111:80
build:
context: ./MetaDataService
dockerfile: Dockerfile

packagelocatorservice:
image: packagelocatorservice
ports:
- 2222:80
build:
context: ./PackageLocatorService/PackageLocatorService
dockerfile: Dockerfile

assetmanagementserviceweb:
image: assetmanagementserviceweb
ports:
- 3333:80
build:
context: ./InfrastructureWebService
dockerfile: Dockerfile
Run Code Online (Sandbox Code Playgroud)

如果我可以在 docker-compose 文件中添加 --isolation=hyperv 标签有什么想法吗?谢谢。

小智 2

此提交可能添加了对此的支持: https://github.com/docker/compose/pull/5448/commits/8155ddc7add99edd1c9a366f44c65ba4d62589a3

我已将版本更新到 3.5 并isolation: 'hyperv'在网络中添加了以下图像希望这对您有用。

version: '3.5'

services:

web:
image: web
isolation: 'hyperv'
ports:
- 4444:80
build:
context: ./web/webapi
dockerfile: Dockerfile

uimetadataservice:
image: uimetadataservice
ports:
- 1111:80
build:
context: ./MetaDataService
dockerfile: Dockerfile

packagelocatorservice:
image: packagelocatorservice
ports:
- 2222:80
build:
context: ./PackageLocatorService/PackageLocatorService
dockerfile: Dockerfile

assetmanagementserviceweb:
image: assetmanagementserviceweb
ports:
- 3333:80
build:
context: ./InfrastructureWebService
dockerfile: Dockerfile
Run Code Online (Sandbox Code Playgroud)

值得注意的是,我无法混合和匹配不同的隔离