繁体   English   中英

如何将 arguments 传递给 docker 在 CLI(命令行界面)中运行?

[英]How do I pass arguments to docker run in a CLI (Command Line Interface)?

我需要我的图像从这个命令开始:

docker run -it --rm --security-opt seccomp=./chrome.json <image_id>

我正在将它部署到谷歌计算引擎: https://cloud.google.com/compute/docs/containers/deploying-containers

据我了解,我无法在那里指定 arguments,因此 Google Cloud 仅使用docker run命令启动它。

我如何传递这些 arguments? 也许我可以以某种方式在 Dockerfile 中指定那些参数?

当您使用该功能直接在 Compute Engine 上部署容器时,您只能定义

  • 入口点
  • 在入口点传递的参数
  • 环境变量

就是这样,您不能添加其他/自定义参数。

一种解决方案是,不使用内置功能,而是在您的 Compute Engine 上使用容器优化操作系统 (COS),并创建一个启动脚本来下载并运行包含您想要的 docker args 的容器

METADATA=http://metadata.google.internal/computeMetadata/v1
SVC_ACCT=$METADATA/instance/service-accounts/default
ACCESS_TOKEN=$(curl -H 'Metadata-Flavor: Google' $SVC_ACCT/token | cut -d'"' -f 4)
docker login -u oauth2accesstoken -p $ACCESS_TOKEN https://gcr.io
docker run … gcr.io/your-project/your-image

在最新的一行中,您可以在启动脚本中自定义运行参数。

所以现在,对于更新,您必须更新启动脚本并重置您的 VM(或者使用 COS 和新的启动脚本创建一个新的计算引擎;并删除之前的脚本)。

这是在内置功能的便利性和定制能力之间进行权衡的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM