我正在尝试使用从docker数据库中提取的图像。但是我需要来自主机的数据才能使用加载到图像中的某些程序。我用这个
创建了一个容器sudo docker run --name="mdrap" -v "/home/ubuntu/profile/reads/SE:/usr/local/src/volume" sigenae/drap
似乎一切正常,然后我启动容器
sudo docker start mdrap
但是当我检查正在运行的容器时,它没有列在那里,如果我尝试将容器加载到/ bin / bash中,它告诉我容器没有运行。我是docker的初学者,我只是尝试使用图像来运行具有所有必需依赖项的程序,我做错了什么?
答案 0 :(得分:0)
docker start
仅用于启动已停止的容器。在docker run
之后没有必要。 (但docker **create**
之后更多,例如the documentation)
只要主要流程正在运行,容器就会启动 主进程停止后,容器就会停止。
容器的主要过程可以是:
ENTRYPOINT
如果已定义CMD
如果没有ENTRYPOINT
且没有命令行参数在您的情况下,因为您没有任何命令行参数(在docker run
命令上的图像名称之后)并且图像仅定义CMD
(= {{1} }),您的容器正在尝试启动/bin/bash
但是,因为您没有使用/bin/bash
或--interactive/-i
启动容器(再次像the documentation一样),您的流程无需与之交互并停止(此容器每次启动的同一性)。
因此,您的解决方案只是遵循the documentation:
--tty/-t
甚至更简单:
docker create --name drap --privileged -v /home/ubuntu/profile/reads/SE:/usr/local/src/volume -i -t sigenae/drap /bin/bash
docker start drap
docker exec -i -t drap /bin/bash