+-
在Docker for Windows上的Kubernetes上部署docker-compose应用程序
我试图按照 https://docs.docker.com/docker-for-windows/kubernetes/#use-docker-commands上的说明在Docker for Windows上针对kubernetes运行docker-compose.yml文件.

我使用的是Docker for Windows的Edge版本 – 18.03.0-ce-rc4 – 我启用了kubernetes.

我在https://docs.docker.com/compose/gettingstarted/#step-3-define-services-in-a-compose-file使用示例docker-compose app,即

version: '3.3'
services:
  web:
    build: .
    ports:
      - '5000:5000'
  redis:
    image: redis

这个例子适用于docker-compose build和docker-compose up

但是按照上面针对docker stack链接的文档,我得到以下内容:

PS C:\dev\projects\python\kubetest> docker stack deploy --compose-file .\docker-compose.yml mystack
Ignoring unsupported options: build

Stack mystack was created
Waiting for the stack to be stable and running...
 - Service redis has one container running
PS C:\dev\projects\python\kubetest> kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)     AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP     5d
redis        ClusterIP   None         <none>        55555/TCP   8s

请注意,它不会创建Web服务,以及“忽略不受支持的选项:构建”错误

我也尝试在上面链接的文档中使用示例docker-compose.yml文件,但它也没有用,但是有一个完全不同的错误.

简而言之,通过遵循文档,我无法在Docker for Windows上部署到kubernetes.

最佳答案
由于缺乏对构建的支持,因此不会为Web服务容器运行映像.

Compose可以在单个Docker主机上为您管理构建.由于Swarm和Kubernetes通常跨多个节点运行,因此图像应引用网络上可用的注册表,以便所有节点都可以访问同一图像.

Dockers stack deploy example包括到setup a private registry的步骤并将其用于图像的来源:

services:
  web:
    image: 127.0.0.1:5000/stackdemo

解决方法

在这种情况下,由于在一个Docker实例下运行的所有内容,可能会手动构建映像并引用该映像名称,这取决于Kubernetes的设置方式.

version: '3.3'
services:
  web:
    build: .
    image: me/web
    ports:
      - '5000:5000'
  redis:
    image: redis

在外部构建图像

docker-compose build web

或直接与码头:

docker build -t me/web .
点击查看更多相关文章

转载注明原文:在Docker for Windows上的Kubernetes上部署docker-compose应用程序 - 乐贴网