使用已装入的卷

时间:2017-07-11 10:57:02

标签: docker containers volume

我正在尝试使用从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的初学者,我只是尝试使用图像来运行具有所有必需依赖项的程序,我做错了什么?

1 个答案:

答案 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