如何扩展现有的Docker容器?

15

TensorFlow的Docker容器可在https://hub.docker.com/r/tensorflow/tensorflow/找到。要使用其他库如requests,我知道两种方法:

  1. 运行容器并运行pip install requests
  2. pip install requests添加到构建此容器的dockerFile

是否有其他选项?例如,从Dockerfile创建tensorflow/tensorflow容器,然后在容器上安装requests

阅读如何扩展现有的Docker镜像?以实现此目的,创建一个包含以下内容的Dockerfile?:

FROM tensorflow/tensorflow
RUN pip install requests
2个回答

23
您的原始说法是正确的,需要创建一个新的Dockerfile:
FROM tensorflow/tensorflow
RUN pip install requests

现在构建它(请注意,名称应为小写):
docker build -t me/mytensorflow .

运行它:

docker run -it me/mytensorflow

执行一个 shell(docker ps -ql 返回最后一个运行的容器的 ID):
docker exec -it `docker ps -ql` /bin/bash

从IT中获取日志:

docker logs `docker ps -ql`

扩展其他镜像的能力是使Docker真正强大的原因,此外您可以查看他们的Dockerfile:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/docker,也可以从那里开始而不必扩展他们的Docker镜像,这是使用Docker在生产中的最佳实践,因此您知道一切都是由本地构建,而不是被某些黑客偷偷塞入您的基础设施。干杯!祝愉快构建。

3
您可以通过以下方式进入正在运行的容器:
docker exec -it CONTAINER_ID bin/bash

如果设置了名称:

docker exec -it CONTAINER_NAME bin/bash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接