如何通过单条docker run命令在容器内执行指定命令?
Docker单条命令启动容器并执行指定命令的正确写法
直接用bash的-c参数传递要执行的命令就行,你之前用--eval是找错参数了,具体写法如下:
基础用法(执行单条命令)
docker run -it --entrypoint /bin/bash image:v1.1 -c "ls"
这里-c是bash的标准参数,用来指定要执行的命令字符串,容器启动后会执行ls,执行完就退出。
执行多条命令
如果要一次性执行多个命令,用分号分隔后放在引号里:
docker run -it --entrypoint /bin/bash image:v1.1 -c "ls; pwd; echo '当前目录内容如上'"
非交互式场景
要是不需要进入容器交互,只是后台执行命令,去掉-it参数就行:
docker run --entrypoint /bin/bash image:v1.1 -c "ls"
为什么之前的写法不对?
--eval不是bash的合法参数,bash只会把它当成普通的命令名去执行,自然找不到这个命令,所以用-c才是正确的方式。
内容的提问来源于stack exchange,提问作者kevin
相关产品推荐
相关产品推荐

