Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行docker容器时必须提供命令吗?_Docker_Centos - Fatal编程技术网

运行docker容器时必须提供命令吗?

运行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

我想在容器上安装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]图像[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文件中可以使用的内容

就你而言,你可以

  • 启动centos 6.6容器
  • 以官方mysql docker文件为参考,发出类似命令(将apt get更改为yum(如果不使用默认root用户,则更改为sudo yum)
  • 一旦成功启动mysql,就可以将所有命令放在docker文件中,以确保第一行是“From centos:6.6”
  • 树立你的形象
  • 使用图像运行一个容器,这样就不需要在docker Run中提供命令
  • 您可以在docker hub中共享您的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命令。