Chapter 1. Introducing Red Hat Container Development Kit
Red Hat Container Development Kit is a platform for developing containerized applications — it is a set of tools that enables developers to quickly and easily set up an environment for developing and testing containerized applications on the Red Hat Enterprise Linux platform.
- Container Development Kit provides a personal Container Development Environment you can install on your own laptop, desktop, or server system. The Container Development Environment is provided in the form of a Red Hat Enterprise Linux virtual machine. The Container Development Environment itself can also be installed in a virtual machine.
- Container Development Kit includes the same container-development and run-time tools used to create and deploy containers for large data centers.
- Container Development Kit offers an easy installation method that results in virtual machines created from pre-configured Vagrant boxes and Vagrantfiles running on your local system.
- Container Development Kit is available for Microsoft Windows, Mac OS X, and Linux operating systems, thus allowing developers to use their favorite platform while producing applications ready to be deployed in the Red Hat Enterprise Linux ecosystem.
Container Development Kit is a part of the Red Hat Developers program, which provides tools, resources, and support for developers who wish to utilize Red Hat solutions and products to create applications, both locally and in the cloud. For additional information and to register to become a part of the program, visit developers.redhat.com.
1.1. Understanding Container Development Kit Documentation
- The Red Hat Container Development Kit 2.3 Release Notes and Known Issues contains information about the current release of the product as well as a list of known problems that users may encounter when using it.
- The Red Hat Container Development Kit 2.3 Installation Guide guide contains instructions for installing the Container Development Environment provided by Red Hat Container Development Kit on your chosen system.
- The Container Development Kit Getting Started Guide contains instructions on how to start using the Container Development Environment to develop Red Hat Enterprise Linux-based containers using tools and services such as OpenShift Container Platform, Docker, Eclipse, and various command-line tools.
- Report issues with Red Hat Container Development Kit or request new features using the CDK project at https://issues.jboss.org/projects/CDK.
1.2. What Is in Container Development Kit
Once the Container Development Environment from Container Development Kit is running on your system, you can begin exploring the contents. Some services and tools run automatically when you boot the virtual machine while others require configuration. Here is a list of some of those features:
OpenShift Container Platform: A containerized version of OpenShift Container Platform is included in the Container Development Environment. OpenShift Container Platform provides developers with a platform for creating, provisioning, managing, and scaling container-based applications for cloud environments. Once the OpenShift container is running, you can use a web console from your browser or work from the command line with the
occommand to develop container projects.
Docker: The Docker project develops the basic container format and the
dockercommand for working with containers that are included in the Container Development Environment. The Environment is configured to have the docker daemon start automatically when you boot the virtual machine. With the
dockercommand, you can build, run, start, stop, investigate, and otherwise work with individual containers.
Kubernetes: To orchestrate containers in what are referred to as pods, Container Development Kit comes with all the features needed to run a Kubernetes cluster. Within the Container Development Environment, you can use Kubernetes directly with your own container-development tools, or use the version of Kubernetes that is integrated in OpenShift. When started without OpenShift, Kubernetes is set up to run as an all-in-one Kubernetes master (for managing pods) and node (for running pods).
Kubernetes includes features for replicating pods (to scale up applications on the fly) and services (for interconnecting sets of containers). When you start the Vagrantfile for Kubernetes, the virtual machine starts with all required Kubernetes services running.
- Linking to Eclipse: The Container Development Environment lets you connect to it from the Eclipse IDE with Linux Tools and the Docker Tooling plug-in. This allows Container Development Kit users to manage containers from a graphical interface on their host system.
1.3. Where You Can Run Container Development Kit
Red Hat Container Development Kit was designed to let you do your container development using the same computer on which you do your other work. Container Development Kit can be installed on the following systems:
- Microsoft Windows: You can use a 64-bit version of Microsoft Windows to install Container Development Kit. Windows 7 or later is required. Virtualization support must be included and turned on in the BIOS.
- macOS: You can use an Intel-based Apple Mac to install and run Container Development Kit. The computer should have at least 4 GB of RAM and be running a recent, 64-bit version of macOS, such as 10.11 (El Capitan). Virtualization support must be included and turned on in the BIOS.
- Red Hat Enterprise Linux: The latest version of Red Hat Enterprise Linux 7 is recommended for installing Container Development Kit. A 64-bit computer with at least 4 GB of RAM and virtualization support is required.
See the Container Development Kit installation procedure for each system for more detailed hardware and software requirements.
1.4. Obtaining and Setting up Container Development Kit
Container Development Kit is available from the Red Hat Customer Portal to anyone with a valid Red Hat Enterprise Linux Developer Subscription. Joining the Red Hat Developers program also provides a path to getting Container Development Kit.
This guide provides the following instructions for installing Container Development Kit to begin developing containerized applications:
- Choosing your development system (Microsoft Windows, macOS, or Red Hat Enterprise Linux).
- Making the Container Development Kit Vagrant box and Vagrantfiles available on your system.
- Starting the Container Development Environment from the Vagrant box with the selected configuration (OpenShift or stand-alone Kubernetes).
1.5. Installation Components
Regardless of which platform you choose as the workstation for using Container Development Kit, you will use Vagrant to start and manage it. There are a few things you should know about Vagrant before you get started:
- Vagrant is an open-source tool for using light-weight, portable, and consistent development environments.
- Virtual machines that are packaged for use with Vagrant are called boxes.
- Container Development Kit is delivered with two different Vagrantfiles to configure Container Development Kit software components in different ways.
While this guide contains separate chapters for installing on Microsoft Windows, macOS, and Linux systems, some of the components and steps are the same for all installation types. For example, the Red Hat Container Tools ZIP file you download includes Vagrantfiles that are used on all platforms. Likewise, Vagrant boxes you use are tied to the hypervisor (such as VirtualBox or libvirt) rather than the operating system. The installation and use of Vagrant plugins is also the same on all operating systems.
Now that you understand the basics of what is inside Container Development Kit, choose from one of the next chapters to learn how to obtain Container Development Kit and install it on a Microsoft Windows, macOS, or Red Hat Enterprise Linux system.
1.6. Additional Resources
- Container Development Kit Getting Started Guide: Steps you through your first experiences using Container Development Kit.
- Getting Started with Containers: Describes the basics of setting up Docker and Kubernetes (all-in-one or cluster) to run containers. It also covers basic storage setup, Kubernetes troubleshooting, starting containers with systemd, and running super-privileged containers.