Containerize your apps (without constraining yourself)

Adoption

Developing for containers

Red Hat Container Development Kit (CDK) is a pre-built container development environment based on Red Hat Enterprise Linux to help you get started developing container-based applications quickly. The containers you build can be easily deployed on any Red Hat container host or platform, including: Red Hat Enterprise Linux, Red Hat Enterprise Linux Atomic Host, and our platform-as-a-service solution, OpenShift Enterprise 3.

Get started with containers on Mac OS X, Microsoft Windows, or Linux

To save you from having to assemble a container development environment from scratch, CDK delivers the latest container tools in a Red Hat Enterprise Linux virtual machine that you can use on your Mac OS X, Microsoft Windows, RHEL or Fedora Linux system. In addition, you have your choice of virtualization platforms (VirtualBox, VMware, and the Linux KVM/libvirt hypervisors are all supported). All of the VM configuration details on your system are handled for you by Vagrant, an open-source tool for creating and distributing portable and reproducible development environments.

Something for all levels of container experience

The CDK is for you whether you are trying Docker-formatted containers for the first time, or want to see the latest developments in container tools from Red Hat. If you are just getting started, try some container examples from the Getting Started with Container Development Kit guide.

If you are ready to try scaling out and orchestrating multi-container deployments, CDK has OpenShift Enterprise 3 and Kubernetes installed. You can choose between multi-container environments that are managed by OpenShift Enterprise or by just Kubernetes itself.

Want to try OpenShift Enterprise 3 Platform-as-a-Service?

The CDK provides a prebuilt, single-machine OpenShift Enterprise 3 environment, so you can try the latest version of the OpenShift platform-as-a-service that integrates support for docker-formatted containers and Kubernetes. When you bring up the rhel-ose Vagrantfile, OpenShift is started and provisioned.

To help you get started building applications, a number of OpenShift templates are included. You can access the OpenShift Web console from your browser or work from the CLI using the oc command to deploy container applications. OpenShift is pre-configured with a local Docker registry available and a local version of Kubernetes running, so you can test the full experience in a self contained environment.

Orchestrate applications using Kubernetes

Kubernetes is an orchestration and management platform for automatic deployment, scaling and operation of application containers on a cluster of machines. Deploying containers using Kubernetes requires metadata information in the form of artifacts files. So a developer needs a simple setup of Kubernetes to be able to test application containers and the artifacts before moving the deployment to other environments, such as testing and production environments.

The CDK provides a rhel-k8s-singlenode-setup Vagrantfile that can start up a single node Kubernetes configuration (a single master and node setup) on the same host just with a "vagrant up" command. A developer could then use the kubectl command to create pods, services, replication controllers and other elements to manage and scale containerized applications.

Convert VM images to Containers with v2c

Virtual-to-Container (v2c) is a tool for importing and converting disk images (like virtual machine images) into docker-formatted container images, complete with the appropriate metadata. The v2c tool makes it simple to take a working VM that has a single application and generate a dockerfile that runs the same application in a container.

A typical v2c user is an organization with an existing collection of VM images that embed significant organization-specific software or configuration. The resulting base images provide a starting point that you can build on with additional dockerfile(s) and configuration.

If you would like to try this capability out please reach out to us on the mailing list supplied below.

Atomic App and the Nulecule Specification

Those interested in the evolution of container tooling will want to try Atomic App, which is Red Hat’s reference implementation of the Nulecule specification. The Nulecule specification enables complex containerized applications to be defined, packaged and distributed using standard container technologies. The resulting container includes dependencies, supports multiple orchestration providers, and has the ability to specify resource requirements. The Nulecule specification also supports the aggregation of multiple composite applications.

Container images

Whether converting existing applications into simple, one-container deployments or developing microservices architecture-based multi-container applications from scratch, the CDK provides the tools and documentation that developers need to get started. This includes access to these images via the Red Hat Container Registry:

Development tools for containers

The Red Hat Enterprise Linux developer tools makes it easy to access industry-leading developer tools, instructional resources, and an ecosystem of experts to help developers maximize productivity in building great Linux applications. Please review this section as the options have greatly expanded recently.

Red Hat Developer Toolset The Red Hat Developer Toolset enables developers to take advantage of the latest versions of GNU Compiler Collection (GCC), Eclipse, and more as they build, test, and deploy applications for RHEL 7.

We now have dockerfiles for Red Hat Software Collections (RHSCL), helping developers to rapidly build and deploy containerized applications. Available for both Red Hat Enterprise Linux 6 and Red Hat Enterprise Linux 7, there are even a few that combine Apache HTTP Server and your favorite scripting language. These are also now included as you install RHSCL components.

Containerizing with JBoss

JBoss Projects and Docker
We publish our images under the official jboss organization. Every image is built from Dockerfiles available from the repositories in our GitHub organization. Images are linked to each other: If an image we’re base on is modified, we rebuild our image to provide you the fresh image that you deserve.

In this session, and right after an introduction to Docker, Marek will dive into examples showing how you can leverage this tool to create a deployment environment for your applications. You will see how to cluster JBoss EAP and deploy an application to it. Marek will share some tips and tricks too: for example how to manage logs or customize the configuration of JBoss EAP to be able to deploy your applications. If you want to, you can just deep dive into the slides or look at the code that he used to demo.

Why containers?

Containers support modern application development trends

A recent Forrester Consulting study asked IT decision-makers "For which workloads or application use cases have you used/do you anticipate to use containers?"

Base: 194 IT operations and development decision-makers at enterprises in APAC, EMEA, and North America Source: A commissioned study conducted by Forrester Consulting on behalf of Red Hat, January 2015

Security - How to keep your containers safe and certified

Survey:53% say security is their biggest concern about containers.

You must make sure that container images running in your infrastructure are safe to consume and certified to run wherever they are deployed.

Opensource.com: Containers don’t contain. Containers only improve the isolation of applications so treat privileged processes inside a container the same way you’d treat them outside of it. This article reveals why containers and SELinux are a perfect (and easy) combo. By Daniel Walsh, Red Hat.

SELinux for security - DockerCon 2014. Docker Security, SELinux can provide a security framework to help isolate Linux containers and support higher levels of security. by: Daniel Walsh for Opensource.com, "Bringing new security features to Docker," Sep 3, 2014.

Community - Project Atomic

Red Hat is working with the open source community through Project Atomic to help create industry-wide Linux container standards. Project Atomic helps make sure that common containers work with trusted operating system platforms. By working towards compatibility and coordinating standards, Project Atomic helps Red Hat and other vendors deliver a complete hosting architecture that’s modern, reliable, and secure. Learn more at projectatomic.org.

Red Hat Developer Program

We provide a complete experience to enable enterprise developers and software builders to envision, create and maintain high-value enterprise software.