<p>我认为一个好的起点应该是一个Dockerfile,从一个Ubuntu映像开始,然后安装所需的依赖项(samtools,bwa)以及python包(放在要求.txt)在</p>
<ul>
<li><code>pip freeze > requirements.txt</code>以获得所需的python包(numpy、tqdm等)</li>
<li><p>创建一个Dockerfile(它与要求.txt)例如:</p>
<pre><code>FROM ubuntu:16.04
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y python && \
apt-get install -y wget \
curl \
bc \
unzip \
less \
bedtools \
samtools \
openjdk-8-jdk \
tabix \
bwa\
python-pip\
software-properties-common && \
apt-get -y clean && \
apt-get -y autoclean && \
apt-get -y autoremove
RUN mkdir -p /usr/src/app
WORKDIR /usr/srv/app
COPY . /usr/srv/app
RUN pip install -r requirements.txt
CMD ["/bin/bash"]
</code></pre></li>
<li><p>构建docker映像<code>docker built tag repository/imagename .</code>(DOT是当前目录)</p></li>
<li>开始图像<code>docker run -dti name test repository/imagename</code></li>
<li>进入容器开始工作<code>docker attach test</code></li>
<li>如您所见,我测试了它,在容器中我有所有想要的工具和包
<a href="https://i.stack.imgur.com/QYGej.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/QYGej.png" alt="enter image description here"/></a></li>
</ul>
<hr/>
<ul>
<li><p>如果要添加新工具,只需将它们添加到Dockerfile中,如果要添加python包,只需展开要求.txt文件。</p></li>
<li><p>如果您有一个python脚本可以执行某些操作,并且需要将其包含到Docker容器中,只需将它与Dockerfile和要求.txt并更新Dockerfile(为了有一个启动python脚本的容器),在Dockerfile中,最后一行将是<code>CMD [ "python", "./my_script.py" ]</code></p></li>
</ul>