Saturday, January 22, 2022

Docker image shipping using save and laod commands

 

Docker shipping images

Prerequisites

There should be two docker installed boxes. Here in my case I'm using mstr, node1 boxes on my GCP.

High level overview

Docker images can be build based on the project requirements, Development team prepared a image which need to be ship to remote hosts. This is one of the key requirement for containerized micro-service applications.

Docker shipping using docker save and docker load commands

Step 1: In this post we will be creating a custom docker image name as 'dhanvi:1.0'.

Step 2. Save the custom image to a tar file and also tar.gz file (docker save).

Step 3. Ship the minimal size image file that is tar.gz file to a remote host (scp from mstr to node1).

Step 4. On the remote host load the docker image file using (docker load).

Step 5. List the docker images on the node1 and run the container.

Custom Image creation 


Docker image save

Docker command CLI provides us to save a docker image to a user specified file using docker save command. 


Save syntax:

docker image save IMAGENAME | IMAGE_ID > imagefile.tar 
or 
docker image save IMAGENAME |gzip > myimage_latest.tar.gz 
Image save example:
Let's take our newly build image 'dhanvi:1.0' to work with docker save command:
docker save dhanvi:1.0 > dhanvi1.0.tar 
docker image save dhanvi:1.0 |gzip > dhanvi1.0.tar.gz 
# or
docker image save -o dhanvi_1.0.tar dhanvi:1.0

# Verify the image file sizes
ls -lh 

docker save command execution flow

Shipping image Docker images we can ship the image to remote host box. The image shipping can be done either manually copying to a pen-drive from developer machine to testing machine. Alternatively you can use 'scp'(secure copy in Linux) command by providing user credentails. Here I've copied to /tmp location you can use as per your project requirement.

  scp IMAGE.tar.gz user@rebothost:/tmp

Docker image load


Load example You can provide the docker image saved file as input (either use -i or --input options) or otherwise you can also use in-direction operator less than symbol as shown below:
 docker load -i /tmp/dhanvi1.0.tar.gz
or 
docker load --input  /tmp/dhanvi1.0.tar.gz
or 
docker load < /tmp/dhanvi1.0.tar.gz

Screenshot of docker load command execution

docker load command execution
Hope you like this post please comment and share to your friends!

References:

  1. Docker image save
  2. Docker image load

No comments:

Categories

Kubernetes (24) Docker (20) git (13) Jenkins (12) AWS (7) Jenkins CI (5) Vagrant (5) K8s (4) VirtualBox (4) CentOS7 (3) docker registry (3) docker-ee (3) ucp (3) Jenkins Automation (2) Jenkins Master Slave (2) Jenkins Project (2) containers (2) docker EE (2) docker private registry (2) dockers (2) dtr (2) kubeadm (2) kubectl (2) kubelet (2) openssl (2) Alert Manager CLI (1) AlertManager (1) Apache Maven (1) Best DevOps interview questions (1) CentOS (1) Container as a Service (1) DevOps Interview Questions (1) Docker 19 CE on Ubuntu 19.04 (1) Docker Tutorial (1) Docker UCP (1) Docker installation on Ubunutu (1) Docker interview questions (1) Docker on PowerShell (1) Docker on Windows (1) Docker version (1) Docker-ee installation on CentOS (1) DockerHub (1) Features of DTR (1) Fedora (1) Freestyle Project (1) Git Install on CentOS (1) Git Install on Oracle Linux (1) Git Install on RHEL (1) Git Source based installation (1) Git line ending setup (1) Git migration (1) Grafana on Windows (1) Install DTR (1) Install Docker on Windows Server (1) Install Maven on CentOS (1) Issues (1) Jenkins CI server on AWS instance (1) Jenkins First Job (1) Jenkins Installation on CentOS7 (1) Jenkins Master (1) Jenkins automatic build (1) Jenkins installation on Ubuntu 18.04 (1) Jenkins integration with GitHub server (1) Jenkins on AWS Ubuntu (1) Kubernetes Cluster provisioning (1) Kubernetes interview questions (1) Kuberntes Installation (1) Maven (1) Maven installation on Unix (1) Operations interview Questions (1) Oracle Linux (1) Personal access tokens on GitHub (1) Problem in Docker (1) Prometheus (1) Prometheus CLI (1) RHEL (1) SCM (1) SCM Poll (1) SRE interview questions (1) Troubleshooting (1) Uninstall Git (1) Uninstall Git on CentOS7 (1) Universal Control Plane (1) Vagrantfile (1) amtool (1) aws IAM Role (1) aws policy (1) caas (1) chef installation (1) create deployment (1) create organization on UCP (1) create team on UCP (1) docker CE (1) docker UCP console (1) docker command line (1) docker commands (1) docker community edition (1) docker container (1) docker editions (1) docker enterprise edition (1) docker enterprise edition deep dive (1) docker for windows (1) docker hub (1) docker installation (1) docker node (1) docker releases (1) docker secure registry (1) docker service (1) docker swarm init (1) docker swarm join (1) docker trusted registry (1) elasticBeanStalk (1) global configurations (1) helm installation issue (1) mvn (1) namespaces (1) promtool (1) service creation (1) slack (1)