How to extend existing docker container?

2019-01-26 08:00发布

The tensorflow docker container is available at https://hub.docker.com/r/tensorflow/tensorflow/ to extend this container with additional libraries such as requests I'm aware of two options.

  1. Run the container and run pip install requests
  2. Append pip install requests to the dockerFile that builds this container

Is there an alternative option ? Something like creating the tensorflow/tensorflow container from a dockerFile and then installing requests on this container.

Reading How to extend an existing docker image? to accomplish this create a dockerFile with these contents ? :

FROM tensorflow/tensorflow
RUN pip install requests

标签: docker
2条回答
别忘想泡老子
2楼-- · 2019-01-26 08:14

you could enter the running container via:

docker exec -it CONTAINER_ID bin/bash

or if a name is set:

docker exec -it CONTAINER_NAME bin/bash
查看更多
地球回转人心会变
3楼-- · 2019-01-26 08:29

Your original assertion is correct, create a new Dockerfile:

FROM tensorflow/tensorflow
RUN pip install requests

now build it:

docker built -t me/mytensorflow .

run it:

docker run -it me/mytensorflow

execute a shell in it (docker ps -ql gives us an id of the last container to run):

docker exec -it `docker ps -ql` /bin/bash

get logs from it:

docker logs `docker ps -ql`

The ability to extend other images is what makes docker really powerful, in addition you can go look at their Dockerfile:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/docker

and start from there as well without extending their docker image, this is a best practice for people using docker in production so you know everything is built in-house and not by some hacker sneaking stuff into your infrastructure. Cheers! and happy building

查看更多
登录 后发表回答