gpt4 book ai didi

docker - 将docker run命令转换为kubectl一次执行

转载 作者:行者123 更新时间:2023-12-02 20:41:03 27 4
gpt4 key购买 nike

我正在尝试运行一个docker镜像一次,以使用流行的S3 client minio执行一个任务,该环境是我正在使用Kubernetes处理的环境。
我可以通过shell访问来执行如下任务:

docker run -it minio/mc --restart=Never --rm /bin/sh
同样,我可以在K8S群集中运行busybox镜像。
kubectl run busybox -i --tty --image=busybox --restart=Never --rm -- sh
但是,我无法使该mc客户端以与上一个示例相同的方式工作。
kubectl run minio -i --tty  --image=minio/mc --restart=Never --rm --  /bin/sh
我的 shell 会退出,关于如何保持 shell 打开的任何想法?或如何在死之前将bash命令传递给它?

最佳答案

当Pod中的容器运行某些已完成的进程时,就会出现此问题。当其容器退出时,Pod完成。在Pod中连续运行容器是更常见的。
因此,解决此完整问题的方法是保持容器运行:

  • 在Pod中运行容器:

  • kubectl run minio \
    --image=minio/mc \
    --restart=Never \
    --command \
    -- /bin/sh -c 'while true; do sleep 5s; done'

    NOTE the Pod is kept running by the while loop in the container


    NOTE the image's entrypoint is overridden by --command and /bin/sh



  • Exec放入容器中,例如:

  • kubectl exec --stdin --tty minio -- mc --help

    关于docker - 将docker run命令转换为kubectl一次执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63797619/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com