如何将软件或其他软件包添加到docker集装箱?

我已经从docker中心像这样拉jenkins容器:

docker pull jenkins 

容器运行,我可以访问Jenkins UI:

 http://localhost:8080 

我的问题是:

如果我想能够创build一个从github仓库中取出的jenkins作业,并且想从该仓库的某个testing文件运行一些pythontesting,那么我怎样才能安装额外的软件包,比如virtualenvwrapper, pip, pytest, nose, selenium等?

看来,docker容器不会与本地主机文件系统共享任何参考。

我如何在这个正在运行的容器中安装这样的包?

谢谢

您将需要在Docker容器构build时安装所有依赖项。

你可以把你自己的Dockerfile jenkins库,然后把自定义的东西放在里面。 你的Dockerfile可以看起来像

 FROM jenkins:latest MAINTAINER Becks RUN apt-get update && apt-get install -y {space delimited list of package} 

那么,你可以做一些像…

 docker build -t jenkins-docker --file Dockerfile . docker run -it -d --name=jenkins-docker jenkins-docker 

我可能没有正确写出所有的语法,但这基本上是你需要做的。 如果你想让run步骤启动jenkins,请按照他们在现有Dockerfile中所做的Dockerfile ,并将相关部分添加到dockerfile中,以添加一些RUN步骤来运行jenkins。

遇到这个页面 ,这接近类似的问题,虽然它也挂载在另一个容器中的docker袜,以将一个容器连接到另一个容器。 鉴于它的外部链接,这里有相关的dockerfile,

 FROM jenkins:1.596 USER root RUN apt-get update \ && apt-get install -y sudo \ && rm -rf /var/lib/apt/lists/* RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers USER jenkins COPY plugins.txt /usr/share/jenkins/plugins.txt RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt 

这就是你如何旋转它。

 docker build -t myjenk . ... Successfully built 471fc0d22bff $ docker run -d -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/usr/bin/docker -p 8080:8080 myjenk 

我强烈build议通过这个职位。 它非常棒。