![](/img/trans.png)
[英]docker for windows equivalent for “-v /var/run/docker.sock:/var/run/docker.sock”
[英]How to add "-v /var/run/docker.sock:/var/run/docker.sock" when running container from kubernetes deployment yaml
我正在使用将执行 docker 命令( docker ps
等)的映像设置 kubernetes 部署。
我的 yaml 如下所示:
kind: Deployment
apiVersion: apps/v1
metadata:
name: discovery
namespace: kube-system
labels:
discovery-app: kubernetes-discovery
spec:
selector:
matchLabels:
discovery-app: kubernetes-discovery
strategy:
type: Recreate
template:
metadata:
labels:
discovery-app: kubernetes-discovery
spec:
containers:
- image: docker:dind
name: discover
ports:
- containerPort: 8080
name: my-awesome-port
imagePullSecrets:
- name: regcred3
volumes:
- name: some-volume
emptyDir: {}
serviceAccountName: kubernetes-discovery
通常我会运行一个 docker 容器,如下所示:
docker run -v /var/run/docker.sock:/var/run/docker.sock docker:dind
现在,kubernetes yaml 支持commands
和args
但由于某种原因不支持options
。
正确的做法是什么?
也许我应该配置一个卷,但是,它是 volumeMount 还是只是一个卷?
我是 kubernetes 的新手,所以以正确的方式做这件事对我来说很重要。
谢谢
您想将卷添加到容器中。
spec:
containers:
- name: discover
image: docker:dind
volumeMounts:
- name: dockersock
mountPath: "/var/run/docker.sock"
volumes:
- name: dockersock
hostPath:
path: /var/run/docker.sock
直接与 Kubernetes 中任何节点上的容器交互似乎是一个坏主意。 Kubernetes 的全部意义在于编排。 如果您在 Pod 构造之外添加容器,那么 Kubernetes 将不会知道节点上运行的进程。 这会影响资源分配。
还需要说明的是,直接使用容器绕过了安全性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.