我正在尝试根据我们的需要慢慢构建一个 docker 镜像。我想要做的是运行具有单声道的基本镜像,然后让单声道在后台运行可执行文件。在普通命令行中,不尝试在容器中运行它,它看起来像:
/usr/local/bin/mono /home/crystal/Downloads/BackgroundProcesser.exe &
效果很好。但是,如果我在像这样运行容器时尝试这样做:
sudo docker run -i -t crystal/mono-base /usr/local/bin/mono /home/crystal/Downloads/BackgroundProcesser.exe &
我得到 没有这样的文件或目录
。有没有办法可以传入 &
?最后,我想通过 & 来在后台运行这个 BackgroundProcessor,然后在前台运行另一个应用程序。我看到这篇文章寻求不同的解决方案,http://blog.trifork.com/2014/03/11/using-supervisor-with-docker-to-manage-processes-supporting-image-inheritance/ ,但我想我可以从命令行运行一些东西来为我们的应用程序提供概念证明。
最佳答案
使用 -c 选项来 bash 以字符串形式给它一个命令行:
sudo docker run -i -t crystal/mono-base bash -c "/usr/local/bin/mono /home/crystal/Downloads/BackgroundProcesser.exe & /bin/bash"
并在后台命令后放置一些内容到容器不会立即退出
关于linux - docker run 的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26306867/