运行docker容器时必须提供命令吗?
我想在容器上安装mysql服务器 但是,当我运行运行docker容器时必须提供命令吗?,docker,centos,Docker,Centos,我想在容器上安装mysql服务器 但是,当我运行docker-run--name myDB-e MYSQL\u ROOT\u PASSWORD=my secret pw-d centos:6.6时,我从守护进程得到docker:Error响应:未指定命令。Error 检查docker run--help中的文档,我发现执行docker run时,命令似乎是一个可选参数。这是因为[COMMAND]放在一对方括号内 $docker run--帮助 用法:docker运行[OPTIONS]图像[COM
docker-run--name myDB-e MYSQL\u ROOT\u PASSWORD=my secret pw-d centos:6.6
时,我从守护进程得到docker:Error响应:未指定命令。
Error
检查docker run--help
中的文档,我发现执行docker run
时,命令
似乎是一个可选参数。这是因为[COMMAND]
放在一对方括号内
$docker run--帮助
用法:docker运行[OPTIONS]图像[COMMAND][ARG…]
在新容器中运行命令
我还发现,在启动MySQL容器时,没有指定命令:
启动MySQL实例很简单:
$docker run——说出一些mysql-e mysql\u ROOT\u PASSWORD=my secret pw-d mysql:tag
为什么在运行centos:6.6容器时需要提供命令,而在运行mysql容器时却不需要提供命令
我猜centos:6.6可能是专门配置的,因此用户在运行它时必须提供命令。如果使用centos:6.6,则在发出“docker run”命令时确实需要提供命令 mysql的官方存储库之所以没有指定命令,是因为它的docker文件中有CMD命令:CMD[“mysqld”]。检查一下docker文件 在没有命令的情况下运行容器时,docker文件中的CMD是默认命令 您可以通过阅读来更好地理解docker文件中可以使用的内容 就你而言,你可以
祝你好运。为什么我会在中看到
CMD[“/bin/bash”]
?这是使用centos映像启动容器时的默认命令。你仍然可以在“docker run”中提供一个命令来覆盖它。请尝试“docker run centos:6/6/bin/echo ABC”,在这里通过“/bin/echo ABC”覆盖“/bin/bash”我的意思是,如果centOS提供了默认命令,为什么我必须为其提供命令?我想这是centOS:6:6的docker文件:。您可以看到没有CMD,所以您需要提供一个。对不起,我相信我正在查看centOS:6 docker文件,其中确实有CMD命令。