|
Container technology is great, it will change the way we develop a good delivery software. Of course there is a criticism of this technology people think it is not safe and safe enough to run in the product environment.
With Red Hat Enterprise Linux 7.1 and Red Hat Atomic landing, enterprises and organizations can embrace this new technology trend without sacrificing security and performance.
What Red Hat CDK?
CDK is an abbreviation for the Container Development Kit, which allows developers to use Red Hat Atomic on their desktop systems, whether they are using Microsoft Windows®, Mac OS X®, or other Linux distributions. Like boot2docker, CDK uses a virtual machine to start a small host that can run Red Hat Enterprise Linux-based containers.
Preconditions
Red Hat Subscriptions - To install the Red Hat CDK you must have an active Red Hat Enterprise Linux subscription and, if not, you can request and view it here.
Virtual Environment - VirtualBox (Mac / Windows) or virt-manager (Linux)
Vagrant - used to create and manage virtual environments.
Download the following from the Red Hat consumer portal.
Red Hat Container Tool (Container Tools)
The Red Hat Atomic Vagrant box for VirtualBox, or the Red Hat Atomic Vagrant box for libvirt.
Install the Red Hat Container Development Kit
Note: Before this you need to install the virtualization environment and Vagrant
Unzip the cdk.zip file you downloaded into the main directory. This will create ~ / cdk (/ Users / username / cdk)
$ Unzip -d $ HOME ~ / Downloads / cdk-1.0-0.zip
Install the Vagrant plug-in required to use Red Hat Vagrant. The first plug-in takes a few minutes and Vagrant may need to install additional gem files.
$ Cd ~ / cdk / plugins
$ Vagrant plugin install vagrant-registration-0.0.8.gem
$ Vagrant plugin install vagrant-atomic-0.0.3.gem
Verify that the plug-in is installed:
$ Vagrant plugin list
Vagrant-atomic (0.0.3)
- Version Constraint: 0.0.3
Vagrant-registration (0.0.8)
- Version Constraint: 0.0.8
Add the RHEL Atomic box to the Vagrant:
$ Vagrant box add --name rhel-atomic-7 ~ / Downloads / rhel-atomic-virtualbox-7.1-0.x86_64.box
Start the Atomic host
Creates a working directory for the docker file
$ Mkdir ~ / containers && cd ~ / containers
Create a working directory for the container and initialize the vagrant
$ Mkdir containers && cd containers
$ Vagrant init -m
A `Vagrantfile` has been placed in this directory. You are now
Ready to `vagrant up` your first virtual environment! Please read
The comments in the Vagrantfile as well as documentation on
Vagrantup.com` for more information on using Vagrant.
This step creates a simple Vagrant file. Open it and modify the configuration as follows:
Vagrant.configure (2) do | config |
Config.vm.box = "rhel-atomic-7"
Config.vm.hostname = "rhel-atomic-7-docker-host"
Config.vm.provider "virtualbox" do | vb |
Vb.customize [ "modifyvm",: id, "--cpuexecutioncap", "50"]
Vb.memory = 4096
End
Config.vm.provision "shell", inline: < < - SHELL
Sudo systemctl stop docker> / dev / null 2> & 1
Sudo groupadd docker> / dev / null 2> & 1
Sudo usermod -a-G docker vagrant
Sudo systemctl enable docker && sudo systemctl start docker
Sudo chown root: docker /var/run/docker.sock
Sudo systemctl enable docker && sudo systemctl start docker
SHELL
End
We are now ready to start the container. In the process of creating the machine, you will see if you want to register the system prompts. Answer "Y" and you will be asked to enter the user name and password for the RHN (Red Hat Network) account.
$ Vagrant up
Bringing machine 'default' up with 'virtualbox' provider ...
==> default: Importing base box 'rhel-atomic-7' ...
==> default: Matching MAC address for NAT networking ...
==> default: Setting the name of the VM: containers_default_1432213616739_95846
==> default: Clearing any previously set network interfaces ...
==> default: Preparing network interfaces based on configuration ...
Default: Adapter 1: nat
==> default: Forwarding ports ...
Default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations ...
==> default: Booting VM ...
==> default: Waiting for machine to boot. This may take a few minutes ...
Default: SSH address: 127.0.0.1:2222
Default: SSH username: vagrant
Default: SSH auth method: private key
Default: Warning: Connection timeout. Retrying ...
Default:
Default: Vagrant insecure key detected. Vagrant will automatically replace
Default: this with a newly generated keypair for better security.
Default:
Default: Inserting generated public key within guest ...
Default: Removing insecure key from the guest if its present ...
Default: Key inserted! Disconnecting and reconnecting using new SSH key ...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM ...
Default: No guest additions were detected on the base box for this VM! Guest
Default: additions are required for forwarded ports, shared folders, host only
Default: networking, and more. If SSH fails on this machine, please install
Default: the guest additions and repackage the box to continue.
Default:
Default: This is not an error message; everything may continue to work properly,
Default: in which case you may ignore this message.
==> default: Setting hostname ...
==> default: Registering box with vagrant-registration ...
Default: Would you like to register the system now (default: yes)? [Y | n] y
Default: Subscriber username: < your-rhn-username>
Default: Subscriber password: < password> ==> default: Rsyncing folder: / Users / tqvarnst / containers / => / home / vagrant / sync
==> default: Running provisioner: shell ...
Default: Running: inline script
Test your installation
$ Vagrant ssh
[Vagrant @ rhel-atomic-7-docker-host ~] $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[Vagrant @ rhel-atomic-7-docker-host ~] $ docker run -it rhel7.1 bash
Unable to find image 'rhel7.1: latest' local
Pulling repository registry.access.RedHat.com/rhel7.1
10acc31def5d: Download complete
Status: Downloaded newer image for registry.access.redhat.com/rhel7.1:latest
[Root @ ead3774c2b84 /] # cat / etc / redhat-release
Red Hat Enterprise Linux Server release 7.1 (Maipo)
[Root @ ead3774c2b84 /] #
Press CTRL-P + CTRL-Q to leave your container
[Vagrant @ rhel-atomic-7-docker-host ~] $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Ead3774c2b84 registry.access.redhat.com/rhel7.1:7.1-4 "bash" About a minute ago Up About a minute focused_rosalind
The following command can be used to stop or delete the container
[Vagrant @ rhel-atomic-7-docker-host ~] $ docker stop $ (docker ps -q)
Ead3774c2b84
[Vagrant @ rhel-atomic-7-docker-host ~] $ docker rm $ (docker ps -aq)
Ead3774c2b84
to sum up
With this guide, you can have a working environment for using Red Hat Enterprise Linux 7.1-based containers, whether you are using Mac OS X®, Microsoft Windows®, or other Linux distributions. |
|
|
|