我如何启动一个简单的容器?

how do I start a simple container?

我已经阅读了 quick start guide 并且我已经了解了

我想启动一个公开可用的 docker 容器,我可以使用此命令在任何启用 docker 的机器上启动它

docker run -d \
   -e DRONE_SERVER=wss://ci.fommil.com/ws/broker \
   -e DRONE_SECRET=<redacted> \
   -e DOCKER_MAX_PROCS=1 \
   -e DRONE_TIMEOUT=30m \
   -v /var/run/docker.sock:/var/run/docker.sock \
   --restart=always \
   --name=drone-agent \
   drone/drone:0.5 agent

什么是等效的 Google 控制台/cubectl 命令?我已经达到

kubectl run agent \
  --image=drone/drone:0.5 \
  --env="DRONE_SERVER=wss://ci.fommil.com/ws/broker" \
  --env="DRONE_SECRET=<redacted>" \
  --env="DOCKER_MAX_PROCS=1" \
  --env="DRONE_TIMEOUT=30m" \
  -v /var/run/docker.sock:/var/run/docker.sock

但是这 -v 行不太正确。我需要确保 /var/run/docker.sock 已安装在容器中,因为它的唯一目的是在 docker 到 运行 CI 作业中启动子进程。

你是对的,使用 imperative commands 创建卷来创建没有配置文件的卷在 Kubernetes 中不可用。

但是写一些配置还是很容易的。基于此 blog post 和您的要求,"modern" 配置可能如下所示。

deployment.yml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: agent
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: agent
    spec:
      containers:
      - env:
        - name: DRONE_SERVER
          value: "wss://ci.fommil.com/ws/broker"
        - name: DRONE_SECRET
          value: <redacted>
        - name: DOCKER_MAX_PROCS
          value: "1"
        - name: DRONE_TIMEOUT
          value: 30m
        image: drone/drone:0.5
        name: agent
        args: ["agent"]
        securityContext:
          privileged: true
        volumeMounts:
          - mountPath: /var/run/docker.sock
            name: docker-sock
          - mountPath: /var/lib/docker
            name: docker-lib
      volumes:
        - name: docker-sock
          hostPath:
            path: /var/run/docker.sock
        - name: docker-lib
          hostPath:
            path: /var/lib/docker

这现在可以与 kubectl create -f deployment.yml 一起使用并在 kubectl delete deployments -l app=agent

下停止