如何将docker镜像添加到现有的DockerFile

时间:2018-03-28 16:19:39

标签: docker docker-compose dockerfile

我有一个现有的docker容器应用程序,我现在想要添加hashcat二进制文件。要做到这一点,需要安装一些依赖项,例如nvidia驱动程序,所以我不能简单地将二进制文件放在我的映像中。我试图在我自己的图像中使用这个https://github.com/dizcza/docker-hashcat docker hashcat实现。

虽然我可以让docker-hashcat图像自己正常工作,但我很难将它添加到我现有的项目中。我为我的构建尝试了以下DockerFile(注意,我已经在我的机器上安装了nvidia驱动程序):

#may need to change tag to :nvidia-full in case proper nvidia drivers not installed
FROM dizcza/docker-hashcat:latest

#use python image from 2.7
FROM python:2.7

ADD requirements.txt /app/requirements.txt

WORKDIR /app/

RUN pip install -r requirements.txt

# create unprivileged user
RUN adduser --disabled-password --gecos '' myuser
RUN chown -R myuser:myuser /app
RUN chmod -R 755 /app

但是,这个dockerfile实际上并没有在我的/中包含hashcat目录。

然后我尝试将FROM dizcza/docker-hashcat:latest移动到dockerfile的底部,因为我发现它被覆盖了。但是,如果我这样做,我会得到工作的hashcat目录和二进制文件,但/app下的项目在图像中不存在(运行docker-compose run service bash)。如果需要,我可以在我的docker-compose.yml文件中提供服务定义。

2 个答案:

答案 0 :(得分:0)

您可以将其他图像中的文件复制到图像中。在您的Dockerfile中:

x <- c(-1,-1,-1,-1,1,1,1,-1,-1,1,1,-1,-1,1,1,-1,1,-1,1)
y <- list(1:7, 8:11, 12:15, 16:19)

答案 1 :(得分:0)

您的应用是否尝试运行hashcat?您可以根据需要使用dizcza / docker-hashcat运行容器,而不是尝试将dizcza / docker-hashcat复制到您的映像中。