Docker for Mac v17.12 正式支持 k8s。
Docker for Windows v18.02-rc1 正式支持 k8s。
视频:https://www.bilibili.com/video/av17307986/
首先使用 Docker 账号在 https://beta.docker.com 注册预览计划,之后在 Docker 菜单登录该 Docker 账号。
之前使用 brew
安装了 kubectl
请先卸载。
$ brew remove kubernetes-cli
在 Docker 设置中启用 k8s,具体图解请查看 官方文档。
注意,需要从
gcr.io
拉取以下镜像,由于网络问题可能会失败。
镜像列表:https://github.com/khs1994-docker/docker-with-kubernetes
之前你可能使用了 minikube
,使用以下命令切换到 docker-for-desktop
。
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
docker-for-desktop docker-for-desktop-cluster docker-for-desktop
* minikube minikube minikube
$ kubectl config use-context docker-for-desktop
$ kubectl cluster-info
Kubernetes master is running at https://localhost:6443
KubeDNS is running at https://localhost:6443/api/v1/namespaces/kube-system/services/kube-dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
$ kubectl get node
NAME STATUS ROLES AGE VERSION
docker-for-desktop Ready master 8h v1.8.2
官方文档:https://docs.docker.com/docker-for-mac/kubernetes/
新建 docker-compose.yml
文件。
version: '3.3'
services:
web:
build: web
image: dockerdemos/lab-web
volumes:
- "./web/static:/static"
ports:
- "80:80"
words:
build: words
image: dockerdemos/lab-words
deploy:
replicas: 5
endpoint_mode: dnsrr
resources:
limits:
memory: 16M
reservations:
memory: 16M
db:
build: db
image: dockerdemos/lab-db
$ docker stack deploy --compose-file docker-compose.yml mystack
$ docker stack services mystack
# or
$ kubectl get services
默认的命名空间为 default
,使用以下命令自定义命名空间。
$ docker stack deploy --namespace my-app --compose-file docker-compose.yml mystack
如果你想使用 Swarm mode 相关命令,你必须在前面加上 DOCKER_ORCHESTRATOR=swarm
$ DOCKER_ORCHESTRATOR=swarm docker node ls
$ DOCKER_ORCHESTRATOR=swarm docker stack deploy --compose-file /path/to/docker-compose.yml mystack