Introduction Docker is a container technology which has gained popularity due to its light-weight nature. Docker is native to Linux and it has adopted the Linux features. Dockers can also be installed on other operating systems such as Mac OS-X, Oracle Linux 6 & 7 and Windows. In this chapter, we will learn about Docker installation, initialization and running in various platforms like Windows, Oracle Linux and Mac OS-X.
When the Docker for Mac application starts up, it copies the ~/.docker/certs.d folder on your Mac to the /etc/docker/certs.d directory on Moby (the Docker for Mac xhyve virtual machine). You need to restart Docker for Mac after making any changes to the keychain or to the ~/.docker/certs.d directory in order for the changes to take effect. Double-click Docker.dmg to start the install process. When the installation completes and Docker starts, the whale in the top status bar shows that Docker is running, and accessible from a terminal.
Boot-2-Docker, Windows Docker client, btrfs file system, Unbreakable Linux Network and Oracle Public Yum are the famous technologies which will be used for these installations on various operating systems. Instructions about upgrading and un-installation of Docker on these operating systems have also been discussed in this chapter. Docker Installation with Mac OS-X Docker can be installed by Boot2Docker mainly for running docker commands in the command-line. If you are familiar with command-line, you can choose this kind of installation else you can choose Docker project from GitHub. There is another alternative application called ‘Kitematic’ which allows you in installing Docker and to run containers using GUI or graphical user interface. Boot2Docker along with Command-line Docker Docker cannot be run natively in OS X as Linux specific features are adopted by Docker daemon.
You must thus install Boot2Docker tool. This tool has VirtualBox or Virtual Machine (VM). The Boot2Docker application has the advantage of Linux virtual machine’s light weight nature mainly for running Docker daemon on the operating system, Mac OS X. From the main memory RAM, VirtualBox’s Virtual machine runs. The VirtualBox is just around 24 Megabytes of download which gets booted in less time like 5 seconds. Requirements In order for Boot2Docker to run, your Mac OS must have OS X 10.6 version called ‘Snow Leopard” or even more recent. Learn how to use Docker, from beginner basics to advanced techniques, with online video tutorials taught by industry experts.
Enroll for Free Demo! Key Features to Be Known Before Installation During Docker installation in Linux kernel, your system acts as both Docker host and the local host. Local host is your own system according to networking terminology. The Docker host is the system where the Docker containers are running. In traditional Linux installation, Docker daemon, Docker client and the Docker containers will run on the local host. The Docker container ports can be addressed with the help of local host address. For example: localhost: 9000 or 0.0.0.2:4567.
In Mac OS X installation, docker daemon runs inside virtual machine of Linux supported by Boot2Docker. In Mac OS X, the address of Linux virtual machine is the Docker host’s address. Virtual machine (VM) is assigned an IP address when the boot2docker processes get started. The container map to ports is present under boot2docker ports in the virtual machine. Docker Installation 1.
Go to the boot2docker for Mac OS X installer web page. Then download Boot2Docker by selecting Boot2Docker-y.y.y.pkg from the “Downloads”.
Double-click the package downloaded to install Boot2Docker application. The Boot2Docker installer for Mac OS-X will place the VirtualBox and Boot2Docker in your “Applications” directory. The installer also places the boot2docker and docker binary files in your /usr/localhost/bin folder.
Boot2Docker Application Start-Up For running a Docker container, you need to first run the boot2docker Virtual Machine and supply docker commands such as create, manage and load for the Docker containers. The Boot2Docker can be launched whether from command line of your local host or from the ‘Applications’ folder. Applications Folder If you are finished with launching of Boot2Docker application from the “Applications” folder, the Boot2Docker will:.
Open the terminal window. Create $HOME/.boot2docker folder (directory).
Create VirtualBox certs and ISO. Begins VirtualBox virtual machine that runs the docker daemon Once the launching of Boot2Docker completes, docker commands can be run. The best way to verify if your set up is complete is by running the “hi-all” container. Note: Though it is a practice among programmers to name the first program or first container as “hello-world”, we have used a different name here, just for a change. The container names are user-defined. $ docker run hi-all Unable to find image ‘hi-all:latest’ locally 822247ae4d5b: Pull is complete 13bbdcc63499: Pull is complete D23456fa75d01: Pull is complete Hi-all:latest: The image you pulled is verified. Important: Image verification is a technical preview characteristic and must not be dependable for providing security.
![Boot Boot](/uploads/1/2/5/4/125437855/763740804.png)
Status: Completed Download of newer image for hello-world:latest Hi from Docker. The above message indicates that the Docker installation seems to be working perfectly. For generating the above message, Docker uses the following steps: 1. To begin, Docker client has communicated with Docker daemon. By assuming that Docker image was not readily available in local host container, it has pulled the image from the public storage, ‘Docker Hub’.
From that Docker image, a new container is created. The newly created Docker container is capable of running the executable code which is producing the above message as output. The Docker daemon has passed that output message to Docker client or your localhost and this is displayed in your terminal. If you wish to try something more challenging, you run Ubuntu container using its specific command: If you wish to try something more challenging, you run Ubuntu container using its specific command: Command Line For running the Boot2Docker and initializing it through command line, follow these steps: 1.
Begin by creating Boot2Docker virtual machine using ‘init’ command. $ boot-2-docker init The above command will create a new Boot2Docker virtual machine. It is enough if you run this command just once. In order to run the Boot2Docker virtual machine: $ boot-2-docker start 3.
For Docker client, showcase the environment variables. The address as well as specific paths would be different on your host system.
In order to set environment variables, you need to perform the following in shell: $ eval ” $ ( boot-2-docker shell-init) “ These environment variables can be set manually using the ‘export’ command that the Boot2Docker returns. Now, run the hi-all container to check your setup. $ docker run hi-all Accessing the Container Ports 1. Initiate NGINX container on DOCKERHOST Usually, ‘run’ command of Docker initiates a Docker container, runs it and finally exits. The –d is a flag which enables background-running of Docker container after ‘run’ command completes execution.
The –p flag is used to publish all exposed ports from Docker container to the local host system. This will enable your access from Mac OS. Using docker ps command, display the running docker container CONTAINER ID: 6bf56bf675d8 IMAGE: nginx:lat COMMAND: “nginx –g” CREATED: daemon of 5 minutes ago STATUS: Up 4 minutes PORTS: 0.0.0.1:94165-343/tcp, 0.0.0.1:58156-80/tcp NAMES: web From here, you can view nginx server runs as a Docker daemon. To display the container ports: $ docker port web 343/tcp - 0.0.0.1:59146 80/tcp - 0.0.0.1:48916 This shows that the port number 60 of web container is mapped with port number 48916 on your local host. Enter the “address (localhost is 0.0.0.1) in your web browser The above command did not work. The reason behind is that the address of DOCKERHOST is not the address of localhost (0.0.0.1) but is the address of Boot2Docker virtual machine. Obtain the address of Boot2Docker virtual machine.
$ boot2docker ip 192.167.58.102 (the default ip for docker is 192.168.59.103) 6. Enter the address in your web browser: Done! To exit and then remove the currently running nginx container: Upgrading Boot2Docker If you run Boot2Docker version 1.4.1 and greater, Boot2Docker can be upgraded from command line. But if you run the older versions of Boot2Docker, you need to use only the package obtained from Boot2Docker repository.
In order to upgrade from version 1.4.1 or greater, follow these steps: 1. Open a new terminal on your local host. Stop the running of boot-2-docker application. Execute upgrade command.
Uninstalling Boot2Docker To uninstall Boot2Docker, follow the below steps: 1. Move to Boot2Docker release page: boot2docker/osx-installer 2. From downloads, download the source code either as tar or zip format. From compressed file, extract the needed source code. Open a new terminal in your local system 5. Change the directory to where you have extracted the new source code.
Make it sure that the script, uninstall.sh is runnable: 7. Execute the uninstall.sh script: Docker Installation with Windows As the Docker technology makes use of Linux-oriented features, a light weight virtual machine is necessary to run Dockers in Windows. Docker Client for Windows can be used for managing virtualized Docker applications for running, building and managing the Docker containers.
For making this process simpler, a helpful application is designed called ‘Boot2Docker’ which is helpful in creating virtual machine of Linux in Windows to enable running of Dockers in Linux OS. Though you are using Docker client of Windows, the Docker application with host containers will keep running in Linux. Till the Windows Docker application is built, only the Linux containers were launched from the Windows system. Docker Windows Installation 1. To begin, download recent version of Docker suitable for Windows Installer.
Execute Windows installer, which installs VirtualBox, Docker CLinet, Git for the windows, Boot2Docker management tool and boot2docker Linux ISO. Run Boot2Docker.
Select Start- Program Files - Boot-2-Docker for Windows. The start application will require you to enter ‘ssh’ key passphrase which is simple but less secured. The Boot-2-Docker begins the Unix Shell which is already configured for managing the Docker container that runs inside VM (Virtual Machine).
Then run the docker latest version to check if it is running properly. Running of Docker Boot-2-Docker Start soon starts the shell along with environment variable properly set so that Docker can be started using soon: Let us try hi-all example image. To run, $ docker-run Hello Everyone The above command must download the ‘ Hi All’ image as well as print the message “Hi from Docker”. Command-line Prompt of Windows Initiate the Command-line Prompt of Windows cmd.exe. Boot-2-Docker (command) needs ssh.exe for its existence in PATH, thus bin directory of Git that comes with ssh.exe must be included to%path% which is environment variable. Then, we can easily execute Start command of Boot-2-Docker for initiating Boot-2- Docker virtual machine. If there is an error message stating ‘machine never exists’, init command can be run.
Next, copy commands for cmd.exe for setting environment variables for the window console. You are now ready for running docker commands like docker ps. From PowerShell Initiate the PowerShell window and to your PATH, add ssh.exe: After executing the ‘boot2docker start’ command, the PowerShell commands will be printed. This is to enable setting environment variables for connecting Docker inside virtual machine. After running these PowerShell commands, you can readily run commands of docker like docker ps. Alternatively, instead of copy-pasting the environment variables on PowerShell, you can run boot2docker shellinit command for setting environment variables. Upgrading Docker 1.
Download recent version of Docker for Windows installation. Start running Windows installer which updates the ‘Boot2Docker management tool’. For upgrading the virtual machine, you need to open the new terminal and execute the following commands: Boot-2-docker start Boot-2-docker download Boot-2-docker stop Redirection from Container Port The default user name for boot2docker is ‘docker’ and the corresponding password is ‘tcuser’. Only a network adapter is set up in host machine using the recent release of boot2docker and this gives access to the port of container. To run a docker container using exposed port: This allows you to access the server ‘nginx’ with the help of IP address retrieved using: Boot-2-docker IP By default, it is always 192.168.59.103 however it may be changed by Dynamic Host Control Protocol for virtual machine implementation.
Login through Putty Boot2Docker creates and uses private/public key pairs in the profile:%USERPROFILE%.ssh folder. For logging in, you must make use of private key from the same ssh directory. The format of private key must be converted to a form that PUTTY uses.
Using puttygen, the above can be achieved:. Open the executable file: puttygen.exe. Load private key from ssh directory. Choose “File???? Load” menu and choose.% USERPROFILE%.ssh IDboot-2-docker.
Save the obtained private key. Use private key you have saved for logging in to PUTTY. Docker Uninstallation Window’s standard process is used in uninstalling boot2docker which helps to remove programs.
The Window process never deletes docker installation file: docker install.exe. This file must be deleted by the user. Docker Installation with Oracle Linux 6 and 7 Subscription of Oracle Linux support is not needed for installing Docker in Oracle Linux. Oracle Linux users having active support subscription: The Docker is made available for Oracle Linux 6 and 7 with ULN (Unbreakable Linux Network) either in 017x8664 addon or 016x8664 addon channel, for these users. Oracle Linux users who do not possess active support subscription: For these users, Docker is made available either in repositories- 016addons or 017addons on the Oracle Public Yum. Docker needs the usage of Unbreakable Enterprise Kernel version 3 (3.8.13) or higher versions for Oracle Linux. The kernel provides support for Docker btrfs which is a storage engine for both Oracle Linux 6 and Oracle Linux 7.
Because of the limitations with current Docker application, the Docker can run only on x8664 infrastructure. Enabling the Add-ons Channel Using ULN network interface, activate either 017x8664addon or 016x8664 addon channels.
Enabling the Add-ons Repository The current releases of Oracle Linux 6 and 7 will be configured automatically to use Oracle Public Yum repositories during installation process. By default, these addon repositories never get launched. For enabling the addon repository: 1.
Change either /etc/yum.repos.d/public-yum-ol7.repo or etc/yum.repos.d/public-yum-ol6.repo 2. Otherwise, set enabled=1 in the ol6addons or the ol7addons. Docker Installation 1. Make sure that the suitable addon repository or addon channel is set enabled. Making use of yum, install the Docker package: $ sudo yum install docker Running a Docker 1.
Initiate the Docker daemon after installation: For Oracle Linux 6: $ sudo service docker start For Oracle Linux 7: $ sudo systemctl start docker.service 2. To start Docker daemon automatically during booting: For Oracle Linux 6: $ sudo chkconfig docker on For Oracle Linux 7: $ sudo systemctl enable docker.service Docker Daemon Customization If you want to insert a HTTP proxy, different partition or directory needs to be set for using Docker runtime files. Other kinds of customizations can also be made for this purpose.
Storage Engine- btrfs Oracle Linux 6 and Oracle Linux 7 for Docker provide support for using btrfs storage machine. Before permitting support for btrfs, make sure that /var/lib/docker is loaded on btrfs file system. You can use online manuals to learn the creation and mounting of btrfs file systems. For enabling btrfs support for Oracle Linux: 1. Make certain that you have /var/lib/docker on the btrfs file system.
Edit: /etc/sysconfig/docker and to OTHERARGS, add –s btrfs. Restart the docker daemon. Docker Uninstallation For uninstalling the Docker package: $ sudo yum -y remove docker The above ‘remove’ command does not remove or delete containers, images, user configured files or volumes from your host computer. If you want to remove all containers, images and volumes, then run the following docker command: $ rm -rf /var/lib/docker You must manually remove the user made configuration files. Well-known issues with Docker Installation Docker dismounts btrfs filesystem during system shutdown When you stop the Docker application after executing Docker with btrfs file system, the btrfs storage system gets dismounted on system shut down.
You need to ensure that the btrfs file system is installed properly before restarting the Docker application. In Oracle Linux version 7, system.mount command can be used.
You can modify or change the Docker system.service as btrfs mounting depends on definition from systemd. SElinux support for Oracle Linux 7 SElinux should be set disabled or permissive in /etc/sysconfig/selinux for using btrfs file storage machine on Oracle Linux version 7.
I have been working with Virtual machines for quite a while, most of my testing and demo environments are on VirtualBox. The problem I’ve always faced is the storage and resources requirements to run multiple VMs. Running VMs on a MAC works well, however we all know that MAC storage is a premium that not all of us have.
I have always kept my VMs in an external drive, but quite honestly every time I am on a client or want to demos something, I usually don’t have the drive with me. With that I have been looking for alternatives and for quite a while I wanted to try Docker.
With some available time today, I decided to give it a shot and it worked really well. Below I am demonstrating what I did to get started. Here are my Steps: Download and Install Docker for Mac from the Docker Store Install it Double-click Docker.dmg to start the install process. When the installation completes and Docker starts, the whale in the top status bar shows that Docker is running, and accessible from a terminal. Run it Open a command-line terminal, and try out some Docker commands. Run $docker version to check that you have the latest release installed. Run $docker run hello-world to verify that Docker is pulling images and running as expected.
More information on how to run and install Docker on Mac can be found here: Now that I have downloaded and installed Docker successfully, I will download an existing Database 12c Image public available. Follow Alex's Blog Enter your email address to follow this blog and receive notifications of new posts by email.