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.
- Run the container and run
pip install requests
- 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
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
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