For example, to pull the Ubuntu 20.04 Docker image from the Docker Hub.
docker pull ubuntu:20.04
Create a new container from the Ubuntu 20.04 image.
docker run -t -i ubuntu:20.04 /bin/bash
This will create a new container and attach to the bash shell as shown below:
root@013aecdd6919:/#
Install the Nginx package inside the container:
root@013aecdd6919:/# apt-get update -y root@013aecdd6919:/# apt-get install nginx -y
root@013aecdd6919:/# exit
Locate your new container ID:
docker ps -a
returns:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 013aecdd6919 ubuntu:20.04 "/bin/bash" 3 minutes ago Exited (0) 33 seconds ago happy_camper
Save the updated container with a new image named nginx-instance:
docker commit "013aecdd6919" nginx-instance
Verify the newly created image “nginx-instance”:
docker images
returns:
REPOSITORY TAG IMAGE ID CREATED SIZE nginx-instance latest 12cefc9b5362 57 seconds ago 158MB ubuntu 20.04 d70eaf7277ea 12 days ago 72.9MB
NOTE: In order to work with the Docker Hub, you will need to create an account on Docker Hub.
docker login
returns:
Username: peter Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
For example, to tag the nginx-instance image:
docker tag 12cefc9b5362 peter/nginx-instance:ubuntu
where:
docker images
returns:
REPOSITORY TAG IMAGE ID CREATED SIZE peter/nginx-instance ubuntu 12cefc9b5362 12 minutes ago 158MB nginx-instance latest 12cefc9b5362 12 minutes ago 158MB ubuntu 20.04 d70eaf7277ea 12 days ago 72.9MB
Push the new image named peter/nginx-instance to the Docker Hub:
docker push peter/nginx-instance
Login to the Docker Hub using your web browser and verify that the nginx-instance image appears in the Repositories.