Chapter 13. Creating a Container with an Application
This section describes creating a docker-formatted container image from a locally built application. Making your application available as a container is advantageous when you wish to use orchestration for deployment. Alternatively, containerizing effectively solves conflicts of dependencies.
Prerequisites
- Understanding containers
- An application built locally from sources
Steps
Decide which base image to use.
NoteRed Hat recommends starting with a base image that uses Red Hat Enterprise Linux as its foundation. Refer to Base Image in the Red Hat Container Catalog for further information.
- Create a workspace directory.
- Prepare your application as a directory containing all of the application’s required files. Place this directory inside the workspace directory.
Write a Dockerfile that describes the steps required to create the container.
Refer to the Dockerfile Reference for information about how to create a Dockerfile that includes your content, sets default commands to run, and opens necessary ports and other features.
An example of a minimal Dockerfile that contains the
my-program/directory:FROM registry.access.redhat.com/rhel7 USER root ADD my-program/ .
Place this Dockerfile into the workspace directory.
Build a container image from the Dockerfile:
# docker build . (...) Successfully built container-id
During this step, note the container-id of the newly created container image.
Add a tag to the image, to identify the registry where you want the container image to be stored. See Getting Started with Containers — Tagging Images.
# docker tag container-id registry:port/name
Replace container-id with the value shown in the output of the previous step.
Replace registry with address of the registry where you want to push the image, port with the port of the registry (omit if not needed), and name with the name of the image.
For example, if you are running a registry using the
docker-distributionservice on your local system with an image named myimage, the tag localhost:5000/myimage would make that image ready to put to the registry.Push the image to the registry so it can be pulled from that registry later by someone who wants to use it.
# docker push registry:port/name
Replace the tag parts with the same values as these used in the previous step.
To run your own Docker registry, see Getting Started with Containers — Working with Docker registries
Additional Resources
- OpenShift Container Platform — Creating Images
- Red Hat Enterprise Linux Atomic Host — Recommended Practices for Container Development
- Dockerfile Reference
- Docker Documentation — Get Started, Part 2: Containers
- Red Hat Enterprise Linux Atomic Host — Getting Started with Containers
- Base Images — Red Hat Container Catalog listing

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.