Build Custom Image

Launch the base docker that you want to customize.

$ sudo docker run -it ubuntu:latest


It may lead to a shell command. If the command does not lead to shell, you may grab the container id and launch a shell using the docker exec command.

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
278fb8fe9171        ubuntu:latest       "/bin/bash"         About an hour ago   Up About an hour                        cranky_montalcini
$ sudo docker exec -it 278fb8fe9171 bash


Inside the container install python, and python libraries - flask and cassandra

root@278fb8fe9171:/# apt-get update -y && apt-get install -y python-pip python-dev build-essential
root@278fb8fe9171:/# pip install cassandra-driver flask


Exit from the container shell and run the following commands to create a custom image

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
278fb8fe9171        ubuntu:latest       "/bin/bash"         14 minutes ago      Up 14 minutes                           cranky_montalcini

$ sudo docker commit 278fb8fe9171 abasar/web_tier:1.0
sha256:d6a39aa114c8c09a7b50d864186aae082f3ea2d2d17b4368ff68e152b626dcf4


Optionally, you can push to docker hub to reuse later.

$ sudo docker push abasar/web_tier:1.0