Building a Container that Loops: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 54: Line 54:


  docker ps
  docker ps
  CONTAINER ID       IMAGE              COMMAND                  CREATED            STATUS              PORTS              NAMES
  CONTAINER ID IMAGE              COMMAND                  CREATED            STATUS              PORTS              NAMES
  bcff8efd8a9a       centos-loop:1      "/bin/sh -c /opt/loop"  2 minutes ago      Up 2 minutes                            brave_yonath
  bcff8efd8a9a   centos-loop:1      "/bin/sh -c /opt/loop"  2 minutes ago      Up 2 minutes                            brave_yonath

Revision as of 03:35, 18 January 2018

Internal

Overview

This is a simple container based on centos base image whose command sleep-loos, allowing the container to "hang around" without doing much. It also carry a "probe" script that can be exercised externally.

Procedure

Create the Image

Place the scripts (loop and probe) in an empty directory that will serve as build context.

loop:

#!/bin/sh

while true; do sleep 1s; done

probe:

#!/bin/sh

echo "executed in $(uname -n)"

Dockerfile:

 FROM centos:latest
 COPY loop probe /opt
 CMD /opt/loop

The build command:

cd workarea
docker build -t centos-loop:1 .

The image thus created can be listed in the local registry:

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
centos-loop         1                   89c2ce131758        About a minute ago   207MB
centos              latest              ff426288ea90        9 days ago           207MB

Run the Container

docker run -d centos-loop:1
docker ps
CONTAINER ID  IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
bcff8efd8a9a   centos-loop:1       "/bin/sh -c /opt/loop"   2 minutes ago       Up 2 minutes                            brave_yonath