如何在 CLI(命令行界面)中将参数传递给 docker run?

stk*_*flw 2 google-compute-engine docker google-cloud-platform

我需要我的图像以以下命令启动:

docker run -it --rm --security-opt seccomp=./chrome.json <image_id>
Run Code Online (Sandbox Code Playgroud)

我将其部署到 Google 计算引擎:https://cloud.google.com/compute/docs/containers/deploying-containers

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

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

gui*_*ere 5

当您使用该功能直接在 Compute Engine 上部署容器时,您仅限于以下定义

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

仅此而已,您无法添加其他/自定义参数。

\n

一种解决方案是不使用内置功能,而是在计算引擎上使用容器优化操作系统 (COS) 并创建启动脚本来下载并运行具有所需 docker 参数的容器

\n
METADATA=http://metadata.google.internal/computeMetadata/v1\nSVC_ACCT=$METADATA/instance/service-accounts/default\nACCESS_TOKEN=$(curl -H \'Metadata-Flavor: Google\' $SVC_ACCT/token | cut -d\'"\' -f 4)\ndocker login -u oauth2accesstoken -p $ACCESS_TOKEN https://gcr.io\ndocker run \xe2\x80\xa6 gcr.io/your-project/your-image\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

因此,现在,对于更新,您必须更新启动脚本并重置虚拟机(或使用 COS 和新的启动脚本创建新的计算引擎;并删除之前的脚本)。

\n

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

\n