Skip to content

Latest commit

 

History

History
112 lines (74 loc) · 3.51 KB

install-docker-image-in-air-gapped-enviroment.md

File metadata and controls

112 lines (74 loc) · 3.51 KB

How to install docker image in an air-gapped environment

Overview

The following steps show how to transfer a docker image from a machine that is on the internet to a machine that is not on the internet, (i.e. "air-gapped").

Contents

  1. Set environment variables
  2. Pull docker image to local repository
  3. Package docker image
  4. Transfer tar file to air-gapped machine
  5. Unpackage docker image to local repository
  6. Push image to private registry

Set environment variables

  1. Using senzing/hello-world-on-hub-docker-com:latest as an example:

    export DOCKER_ACCOUNT=senzing
    export DOCKER_IMAGE=hello-world-on-hub-docker-com
    export DOCKER_TAG=latest

Pull docker image to local repository

  1. On networked system:

    docker pull ${DOCKER_ACCOUNT}/${DOCKER_IMAGE}:${DOCKER_TAG}

    Reference: docker pull

Package docker image

  1. Use docker save to package docker image. Example:

    docker save ${DOCKER_ACCOUNT}/${DOCKER_IMAGE}:${DOCKER_TAG} \
      --output ~/${DOCKER_ACCOUNT}-${DOCKER_IMAGE}-${DOCKER_TAG}.tar

    Reference: docker save

Transfer tar file to air-gapped machine

  1. If scp or sftp connectivity is available, a network file transfer is possible. Example:

    export TARGET_HOST=my.example.com
    
    scp ~/${DOCKER_ACCOUNT}-${DOCKER_IMAGE}-${DOCKER_TAG}.tar ${TARGET_HOST}:
  2. If truly air-gapped, copy tar file to a portable storage medium to transfer to air-gapped machine.

Unpackage docker image to local repository

  1. On air-gapped machine, set environment variables. Using senzing/hello-world-on-hub-docker-com:latest as an example:

    export DOCKER_ACCOUNT=senzing
    export DOCKER_IMAGE=hello-world-on-hub-docker-com
    export DOCKER_TAG=latest
  2. Unpackage tar file. Assuming tar file is in the ${HOME} directory, example:

    docker load \
      --input ~/${DOCKER_ACCOUNT}-${DOCKER_IMAGE}-${DOCKER_TAG}.tar

    Reference: docker load

Push image to private registry

  1. Set environment variable. Example:

    export DOCKER_REGISTRY_URL=my.docker-registry.com:5000
  2. Tag docker image for private docker registry.

    sudo docker tag \
      ${DOCKER_ACCOUNT}/${DOCKER_IMAGE}:${DOCKER_TAG} \
      ${DOCKER_REGISTRY_URL}/${DOCKER_ACCOUNT}/${DOCKER_IMAGE}:${DOCKER_TAG}

    Reference: docker tag

  3. Push tagged image to private docker registry.

    sudo docker push ${DOCKER_REGISTRY_URL}/${DOCKER_ACCOUNT}/${DOCKER_IMAGE}:${DOCKER_TAG}

    Reference: docker push

  4. Remove tag from local repository docker image.

    sudo docker rmi ${DOCKER_REGISTRY_URL}/${DOCKER_ACCOUNT}/${DOCKER_IMAGE}:${DOCKER_TAG}

    Reference: docker rmi