To install a custom package or modify an existing docker image we need to
1 run a docker a container from the image we wish to modify
2 modify the docker container
3 commit the changes to the container as a docker image
4 test changes made to image
¶Running a docker container from an image
The command to do this is,
1 | docker run -it yhat/scienceops-python:0.0.2 /bin/bash |
- The -i tells docker to attach stdin to the container
- The -t tells docker to give us a pseudo-terminal
- /bin/bash will run a terminal process in your container
¶Modify the docker container
Once we are in our container we can install package(s), and set environment variables
1 | sudo apt-get install vim |
When you are done modifying your container you must exit by running the exit command. Once we exit the container, we need to find the container ID by running
1 | docker ps -a |
¶Commit the changes to the container as a new image
Copy the container ID for the container you just modified, and then run the docker commit command to commit changes to your container as an image.
1 | docker commit [options] [container ID] [repository:tag] |
An example docker commit command is the following.
1 | docker commit e8f0671518a2 yhat/scienceops-python:0.0.2 |
Note here! You must commit the changes with the same tags as the scienceops image on your system. To see your new image run.
1 | docker images |
¶Test changes made to image
To test your changes when adding an environment variable run the test command
1 | docker run -it yhat/scienceops-python:0.0.2 echo $AWS_SECRET_KEY |