All About Managing Domain Names in Plesk

Managing Domain Names in Plesk

Your domain name is essential to your online presence because it’s the first thing visitors interact with. A domain name is your address – the one visitors use to find you out there in the vast internet. Many choose to rely on a managed domain service to have a few responsibilities carried off their busy shoulders – like setting up or changing domain names.

However, you may find yourself left in the dark if your IT admin is ever unavailable. What if they are out of office when you need a quick domain edit? Luckily, setting up and editing domain names in Plesk is easy business that you can swiftly take care of by yourself. Considering the importance of domains, it’s definitely a great addition to add to your skill set.

How to Change a Domain Name

No need to worry about changing a domain name in Plesk, since this is super simple.

  • First, login to your Plesk account and head over to Domains in the Navigation menu.
  • Then, click on example.com > Hosting settings to change your domain name as below:
managing domain names add domain - Plesk

The red box shows where you can input your domain name, and you’re all done. It really can’t be simpler than that.

And to Add or Remove?

If you manage more than one website, you’ll need to add an additional domain name to the server. You can add your domain name right from the Plesk panel. So, to host a new website, with a second-level domain name:

  1. Head over to Websites & Domains and click Add Domain
  2. Follow the on-screen instructions as you can see from the screenshot below.
  3. Select OK. Your new domain name will now appear in the list at the bottom of the screen.
  4. If changing the hosting settings is available for your account, then you can simply click on the domain name of your new website to view or change the hosting settings. And you’re ready to go!
managing domain names 2 - Plesk

What if you need to remove a domain name for good? Then Plesk has you sorted, because once you delete a domain, all the site’s corresponding data is deleted from the server. If that’s what you want, the following 3 steps are here to show you how:

  1. Click on Websites & Domains and find the domain name you want to remove.
  2. Click on Remove Website or Remove Subdomain.
  3. Confirm removal and select OK.

Working with Plesk, there are also plenty of other services you can access as a user in order to have full reign over your domains. From accessing email services, to setting up mailboxes on the website domain, and managing mailing lists. This can all be done from the Plesk interface. Thus, giving you full control over your domains, without having to rely on, possibly unreliable, third-parties.

Next, learn how to set up a Domain Name Server (DNS).

Migrate to Plesk on AWS from Plesk, cPanel or DirectAdmin

Why migrate to Plesk on AWS?

Amazon Web Services is the cloud computing platform by Amazon.com, offering over 90 key infrastructure services such as computing power, storage options, networking, and databases, delivered as on-demand resources with pay-as-you-go pricing.

As part of the hyperscale cloud revolution, increasing numbers of web professionals are now running their instances on AWS, and many Plesk hosting partners have chosen AWS to run their managed-services business. Running your instances, hosting or managed business with Plesk on AWS provides many significant benefits over the traditional hosting infrastructure:

  • Scales better than traditional shared or VPS hosting: Plesk on AWS is based on AWS’ latest innovations and integrates smoothly with the Route53 service of AWS. Support for new AWS services are constantly being added as Plesk Extensions to take advantage of the automation and customization features of the Plesk platform. Pass on the value to your website and app customers by including AWS services to their portfolio.
  • Improved innovation: Deploy from websites and apps anywhere to everywhere. Tune, secure and optimize images that can be scaled horizontally (for high traffic sites) with ease-of-use through AWS.
  • Improved infrastructure: Quick and cost-effective spin up of dedicated multi-server environments.
  • Increased security: Intelligent Security Advisor, free SSL with Let’s Encrypt, Fail2ban, configurable firewall, ServerShield by CloudFlare, Security Core w/ ModSecurity by Atomicorp, Patchman (Patches Vulnerabilities in CMS), Datagrid reliability & vulnerability scanner, and much more
  • Proven workflow: Deploy a Domain, DNS, SSL and simple PHP application in just a few minutes…or a multi-services multi-stack application in as much time. Improved CMS (WordPress, Drupal, Joomla!) and eCommerce (WooCommerce, Prestashop, others,..) workflows to ensure better development velocity.
  • Increased productivity: Move from a release cycle every quarter to deploying changes on a minute-by-minute basis
  • Increased agility: Fully integrated deployment capabilities to deploy code more frequently
  • Global AWS Infrastructure: Plesk instances through the AWS marketplace are immediately available on any of Amazon’s many data center locations.

To learn more about Plesk on AWS, as well as our plug-and-play Plesk WordPress Server Solution and Plesk Business Server Solution, go to our Plesk on AWS page.

Let’s start the migration to AWS

Here’s what we’ll cover in this tutorial:

  1. Prepare your Plesk (or cPanel/DirectAdmin) source server
  2. Install Plesk on AWS as a target server + configure public IP
  3. Install Plesk Route53 Extension on Plesk on AWS + configure the extension.
  4. Install Plesk Migrator Extension on Plesk on AWS
  5. Migrate all the data (Plesk to Plesk), domains will be created in route53 also on this step.
  6. Use the Plesk feature “Switch DNS” – so that the source server stays a Slave until all domains are switched on the Route53 side (actually on the domain registrar’s), website stay functional during the switching time of 24-48 hours that Route53 needs for DNS sync.
  7. After that, you need to contact your registrar to delegate your domains to Route53 DNS.

1. Preparing your existing Plesk or cPanel/DirectAdmin server (source)

Note: there are some limitations in case you plan from Linux to a Windows Server and vice versa! In general, we recommend only to migrate from Linux to Linux or Windows to Windows.

To ensure that the migration is successful, a number of TCP and UDP ports need to be opened on the source and destination servers.

Plesk offers a nice Firewall component that needs to be installed in case you don’t want to do this over command line. If you can’t find the firewall in Tools & Settings -> Firewall, then you need to install the component first (click here). Then you can access it over Tools & Settings -> Firewall. More details on the firewall for Linux here and Windows here.

For Unix servers, open the following ports (In case you are migrating form Plesk using the Plesk Firewall Extension, these ports are all configured correctly for you by default!):

  • TCP port 22 for SSH connections on source server.
  • TCP port 8443 for access to Plesk XML API on the target server and on the source servers, if migrating from Plesk.
  • TCP ports 110, 143 for POP3 and IMAP, on the source and target server. These are used for post-migration checks.

For Windows servers, open the following ports:

  • TCP ports 135, 139, 445 and UDP ports 137, 138. Be sure to open these ports on the source and on the target server.
  • TCP port 1433 for MS SQL, if it is used as the default instance.
  • UDP port 1434 and all (or manually selected) TCP ports for MS SQL, if it is used as a named instance.
  • TCP port 10155 for a custom Plesk Migrator service performing miscellaneous tasks.
  • TCP port 10156 for rsync server.
  • TCP port 8443 for access to Plesk XML API on the target server and on the source servers, if migrating from Plesk.
  • TCP ports 110, 143 for POP3 and IMAP, on source and target servers. These are used for post-migration checks.

Also, make sure that https://installer.plesk.com is accessible from the destination server.

We recommend that you install and configure all the necessary services and settings on the destination server before performing the transfer. For example, if you plan on migrating MySQL databases, make sure that the MySQL server is installed and running on the destination server, and so forth.

Make sure that Plesk on the destination server has a separate license. Otherwise, you may experience problems with the license validation during migration. The possible ways of obtaining a license are described in the Administrator Guide.

2. Preparing your AWS Plesk instance (target server)

Follow this guide to set up Plesk on AWS. Note: be absolutely sure that your AWS instance is configured running with a public IP address as described in the installation tutorial, otherwise you might have issues with the DNS parts later. 

Plesk OnyxImage: Plesk Onyx

3. Installing the Plesk Migrator Extension

To install Plesk Migrator using the Plesk interface

  1. Log in as administrator to Plesk on the target server.
  2. Go to Extensions -> Server Tools -> Plesk Migrator 
  3. Select Install on the Plesk Migrator detail page.

4. Installing the AWS Route53 Extension inside Plesk

In case you plan to use the DNS features of Plesk (what is highly recommended!), you need to make sure that you have the Route53 Extension installed.

  1. Log in as administrator to Plesk on the target server.
  2. Go to Extensions -> DNS -> Amazon Route 53
  3. Select Install on the Amazon Route53 detail page.

Just for reference – here the guide for Route53 from AWS: http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html

5. Initiating the migration on your AWS Plesk instance (target server)

  1. Log in to Plesk on the destination server as the Plesk administrator.
  2. Go to Server Management > Extensions > Plesk Migrator > Start a New Migration. If Plesk Migrator is unavailable, install it following the instructions here.
  1. Select the hosting panel installed on the source server from the Panel type menu.
  2. Specify the following:
    • The source server’s IP address. If migrating from a Linux server, specify the SSH port as well (22 by default).
    • (Plesk for Linux) The login and password of a root user on the source server. Alternatively, you can choose to authenticate via SSH keys. For details, refer to Authentication by SSH (Linux).
    • (Plesk for Windows) The login and password of the built-in administrator accounts on both the source and the destination servers.
    • The directory for storing temporary files on the source server (make sure there is enough free disk space available to store the dump of the largest database that will be migrated).
  3. If migrating from a Windows-based server, specify the method for installing the RPC agent (an application enabling Plesk Migrator to gather data):
    • Automatic (recommended). Plesk Migrator will try to deploy and start RPC agent on the source server using the built-in administrator account. In some cases, automatic deployment may fail (for example, due to firewall settings, or because the File and Printer Sharing or RPC services are disabled). If this happens, deploy the agent manually.
    • Manual. A link to download the RPC agent package will be provided. Download the package and install the agent on the source server manually.
  4. Click Prepare Migration to proceed to the next step. Plesk Migrator will attempt to fetch the data about the different objects (domains, subscriptions, customer/reseller accounts, and hosting plans) found on the source server. If the connection fails, double-check the source server information, make sure that the connection is not blocked by firewall, and try again.

    Note that from this point onwards, you can leave the Migrator interface without losing your progress – the migration will remain in progress until you finish it explicitly. To continue from where you left off, click Server Management > Extensions > Plesk Migrator and then click the corresponding migration in the list.

  5. You now find yourself on the Add subscriptions tab.

  6. Here you must select the subscriptions to be migrated (note that you cannot migrate individual domains, the fewest number of objects you can migrate is a single subscription and all its domains). You can use one of the three available filters:

    • By Subscription. If you migrate a subscription owned by a customer or a reseller, the corresponding customer/reseller account will be migrated as well (unless a custom subscription owner is specified – see below). The hosting plan the subscription is based on will also be migrated.
    • By Customer/Reseller. If you migrate a customer or reseller account, all subscriptions owned by the account will be migrated together with the hosting plans they are based on. Note that migrating a reseller account does not automatically migrate the customer accounts owned by the reseller. If you select a reseller account and one or more customer accounts owned by that reseller for migration, the reseller’s ownership of the customer accounts will be preserved on the destination server.
    • By Hosting Plan. If you migrate a hosting plan, all subscriptions based on the said plan will be migrated as well. If you migrate a hosting plan belonging to a reseller, said reseller will be migrated as well, plus all subscriptions based on the selected hosting plan together with the customers who own those subscriptions.
  7. Select what types of content (mail content, web content, and databases) will be migrated.
  8. Select a custom subscription owner. By default, whenever a subscription owned by a customer or reseller is migrated, the corresponding customer or reseller account is created on the destination server as well. If you select a different subscription owner, the ownership of all subscriptions being migrated will be assigned to that account.
  9. To change the migration settings, click Settings in the upper-right corner.

  10. Here, the following controls are available:

    • Adjust application settings. By default, during migration Plesk attempts to make changes to the configuration files of a number of popular web applications to make them operable on the destination server. Clear the checkbox if you want to make the changes manually. Leaving this option enabled will increase the migration time.
    • Apache restart interval (Plesk for Linux only). Restarting the web server on the destination server is necessary for the migrated domains to become available over the network. Make sure not to set this value too low (less than 300 seconds is not recommended), as all hosted domains become temporarily unavailable every time the web server is restarted.
    • Run post-migration checks. By default, after the migration is finished, Plesk performs a number of automated tests to identify potential issues with the migrated domains. Clear the checkbox if you do not want the tests to be run. Leaving this option enabled will increase the migration time.
  11. When you are satisfied with the list of subscriptions to migrate and the migration options, click Migrate to proceed. Plesk will run pre-migration checks to detect potential issues and display a report.

  12. We advise you to fix the detected issues (if any) before continuing with the migration. Make the necessary configuration changes, then click Refresh to re-run the tests.

  13. When the pre-migration check returns a clean result, click Start migration to begin migrating. Once a migration is underway, you can monitor its progress on the Overview tab.
  14. As subscriptions are being migrated, status reports will be displayed for every subscription for which the migration was either completed successfully or failed.
    • The icon indicates that the migration was completed successfully.
    • The icon indicates that the migration was completed with errors. Click [Details] to see the list of issues that occurred during the migration.
    • The icon indicates that the migration failed. Click [Details] to see the list of issues that occurred during the migration.
  15. If you want to perform an additional sync of a subscription’s content after the migration is finished, click [Re-sync] next to the subscription’s name.
  16. If you want to migrate additional subscriptions from the source server, return to step number seven. Otherwise, unless you plan to migrate from the same source server again in the near future, you can click Finish migration to remove it from the list of ongoing migrations.

6. Going into production: switch DNS

  • Any DNS zones (domains) will be transferred to the configured Route53 correctly when using a public IP address on your Plesk server on AWS, without any manual interventions.
  • After the migration, AWS need some time to propagate new DNS records/domains inside their infrastructure.
  • IF on source server DNS was handled by Plesk, then the migrated domains continue to work on old DNS but points to new IP’s because of “switch DNS” feature described earlier.

7. Request at your domain registrar or registries to switch DNS to route53

After your changes to Amazon Route 53 resource record sets have propagated to Amazon Route 53 DNS servers (see Step 4: Check the Status of Your Changes (API Only)), update your registrar’s name server (NS) records to refer to the Amazon Route 53 name servers.

migration with no downtime – woohoo!

 

8. Additional tips

In case you are not ready to migrate your whole server yet, there is also an option to just migrate 1 site to a server with Plesk on AWS or one WordPress instance into Plesk’s all new WordPress Toolkit. For that, please refer to separate documentation available here.

 

Thanks to the whole AWS team for co-authoring this write-up and for providing feedback and technical insights to optimize this tutorial.

Be well, do good, and stay Plesky!

Deploying Plesk Onyx on Microsoft Windows Azure

Cloud computing provides businesses the ability to quickly scale computing resources without the costly and laborious task of building data centres, and without the costs of running servers with idle capacity due to variable workloads. To simplify dynamic provisioning in the Cloud for infrastructure providers (including service providers who offer dedicated servers, VPS or IaaS), Plesk now provides ready-to-go images for deploying on Microsoft Windows Azure.

What is Windows Azure?

Quite simply, anything you want it to be.

This cloud platform from Microsoft provides a wide range of different services, to help you build, deploy, and manage solutions for almost any purpose you can imagine. In other words, Windows Azure is a world of unlimited possibilities. Whether you’re a large enterprise spanning several continents that needs to run server workloads, or a small business that wants a website with a global reach, Windows Azure provides a platform for building applications that can leverage the cloud to meet the needs of your business.

In addition to traditional cloud offerings, Azure offers services that leverage proprietary Microsoft technologies. For example, RemoteApp allows for the deployment of Windows programs using a virtual machine running Windows, OS X, Android, or iOS through a remote desktop connection. Azure also offers cloud-hosted versions of common Microsoft enterprise solutions, such as Active Directory and SQL Server.

Questions about Windows Azure?

There are two great places you can go online to ask questions about Windows Azure and get answers from the community:

  • The Windows Azure forums on MSDN.
  • Get involved with the Azure Community on Stack Overflow here.

The best way to keep up with new features and enhancements in Windows Azure is by following the official Windows Azure Blog. If you use a newsreader, you can subscribe to the RSS feed for this blog and get the news as it happens.

Microsoft Windows Azure Dashboard
Image: Microsoft

What is Plesk Onyx?

It’s what Web Professionals like Developers, Designers, Agencies, IT-Admins use to simplify their work lives.

Plesk is the leading WebOps platform to build, secure and automate applications, websites and hosting businesses. Available in more than 32 languages across 140 countries in the world, 50% of the top 100 worldwide service providers are Plesk partners. Our WebOps platform is designed to help infrastructure providers create targeted solutions for Web Professionals, Web Hosts, and Hosting Service Providers.

Key solution areas include:

  • Unlimited domains
  • WordPress Toolkit
  • Developer Pack
  • Subscription Management
  • Account Management
  • Reseller Management

The new Plesk Onyx for Windows and Linux (WebHost) also includes a tightly integrated set of mass-management and security tools that can be used to protect and automate WordPress. All Plesk-powered systems come with built-in server-to-site security, promising more reliable infrastructure and reduced support costs.

Plesk Onyx at Microsoft Windows Azure Virtual Machines Marketplace
Image: Microsoft

Here’s the good news: Plesk Onyx now runs on Microsoft’s cloud infrastructure to provide the scalability, security, and performance that customers depend on.

Better news yet, Plesk provides a variety of virtual machine images with the most popular configurations. So no actual installation is required. You’ll just need to create a virtual machine from the appropriate image. All available images for virtual machines can be found in the Microsoft Azure Marketplace.

 

Which virtual machine images are provided?

The new Plesk Onyx images are shipped in three editions and are available for both Windows and Linux.

The ‘Bring Your Own License’ (BYOL) instance of Plesk Onyx allows you to purchase your own license directly from the Plesk Online Store or from a Plesk reseller. For Plesk Onyx WebHost images, the cost of your license is included in the hourly charge for the instance. Plesk Onyx licenses are available for two platform types: for Dedicated Servers and for VPS.

License and OS version:
Plesk Onyx images at Microsoft Windows Azure

Now that you’re familiar with the Windows Azure platform and Plesk, you’re ready to take the next steps. And there’s no better way to experience the powerful capabilities of Windows Azure than trying out the platform for yourself.

 

Getting started with Plesk and Windows Azure

Microsoft is currently offering a free one-month trial of Windows Azure that provides you with $200 of Windows Azure credits you can use for whatever you want. You get full access to the platform with no strings attached. Just sign in with your Microsoft account and fill out the form.

Tutorials

These tutorials by Cynthia Nottingham, Technical Writer at Microsoft, shows you how easy it is to create a Windows virtual machine (VM) from a Plesk-published image by using the Azure portal.

 

Quick Start Guide: Create a virtual machine

Log into the Azure Portal and on your Dashboard, select New> Compute. Search for the Plesk virtual machine images and select the appropriate Plesk configuration.

Microsoft Windows Azure - Plesk Onyx images
Image: Microsoft

When configuring a virtual machine, you will be asked to specify the following settings:

1. Basic settings: virtual machine name, disk type (SSD or HD), username and password, your Azure subscription and resource group.

Note: The root username cannot be used during the VM creation. You may grant the root user access to the VM later from the console.

For Linux VM, you can choose the following authentication types:

  • SSH public key. In this case, you should specify your SSH public key. You can find information about creating public and private SSH keys here.
  • Password. In this case, you should specify and confirm the password that will be used for connection to the virtual machine.

2. VM size. You can choose one of available standard sizes provided by Azure.

3. Storage and network settings, including virtual network, subnet, public IP address, network security group (firewall). It is OK to leave the default values for most options.

Note: By default, your machine will have a dynamic IP address, so that the IP address will be changed each time when the virtual machine is restarted. If you want to avoid this, click Public IP address and then select the Static option. The virtual machine will be created with a static IP address.

4. Deployment. When you’ve dialed in all the settings, you’ll be presented with a summary. Confirm these settings for your new VM and click OK. Finally, your offer details will be generated and you can now purchase your virtual machine by clicking the Purchase button. The deployment process will start, and you will see its progress on your Dashboard.

5. You’ve created a VM. Your new VM will deploy in a couple of minutes. Once your virtual machine is deployed, it will be automatically started and the setting page will be displayed. You also can view and manage your virtual machine settings by going to Virtual Machines and selecting your virtual machine name.

Of course, you will be able to see the Public IP address of the machine.

Microsoft Azure - virtual machine configuration
Image: Microsoft

Access Plesk Onyx on your virtual machine

Connect to the virtual machine.

  • If you’ve created a Windows Virtual Machine, you can connect to it via Remote Desktop. Go to the Azure Portal Dashboard >Virtual Machines, choose your VM, and click Connect. This will create and download a Remote Desktop Protocol file (.rdp file) that acts like a shortcut to connect to your machine. Open this file and connect to your virtual machine using your login and password.

  • If you have a Linux VM, you can SSH into its public IP address that is displayed in the virtual machine’s settings. Depending on your selected authentication type, you may either use a login and password, or your SSH public key.

  • From a Mac or Linux workstation, you can SSH directly from the Terminal. For example:

     ssh -i ~/.ssh/azure_id_rsa [email protected]
  • If you are on a Windows workstation, then you will need to use PuTTY, MobaXTerm or Cygwin to SSH to Linux. For details, see How to Use SSH keys with Windows on Azure.

 

Get a one-time login for logging in to Plesk

  • On the virtual machine, run

     $ sudo plesk login

    to get a one-time login for logging in to Plesk. You will receive two links: based on the virtual machine name and based on the IP address. Use the link based on the IP address to log in to Plesk.

login via ssh to Plesk Onyx

Note: You cannot use the link based on the virtual machine name the first time you log in because Plesk has not passed the initial configuration and the full hostname has not been created yet. You should use the link corresponding to your public IP address.

 

Running the Installation/Configuration wizard

1. When you log into Plesk, you will see the View Selector page. On this page, you can choose the appearance of the panel as per your requirements.

Plesk Onyx configuration wizard
Image: Plesk Onyx

Once your purpose has been identified, a second drop-down menu will emerge asking you select your preferred layout. This can be changed later.

2. Then comes the Settings page. Here you need to fill in your hostname, IP configuration, and admin password.

  • New hostname: Fill in your primary domain (i.e. testdomain.com).
  • Default IP Address: Leave the IP as default.
  • New password: Change the default administrator password.

Plesk Onyx Settings
Image: Plesk Onyx

3. Next is the Administrator information page. Just fill in the information asked and proceed to the next page.

4. Then comes the License key install page. Your Microsoft Azure instance is billed on an hourly basis, starting when it boots up and ending with the instance termination.

  • If you have a Bring Your Own License (BYOL) Plesk Onyx image, your hourly charge for the Microsoft Azure instance will be lower but you need to purchase and install the Plesk product license yourself. You can order, retrieve and install a 14-day full-featured trial license from this page. Since you have already purchased a license key, proceeding with installing the license key.
  • If you have a non-BYOL Plesk Onyx image, for example, Plesk Onyx on Windows 2012 R2 (WebHost), the cost of the license will be included in the hourly charge for the instance.

5. On the Create your Webspace page you can specify the domain name of your first subscription, and system user account username and password that you will use to manage it. This will create a subscription for hosting multiple sites.

6. Woohoo! Plesk is now configured!

Plesk Onyx - Administration dashboard
Image: Plesk Onyx

Thanks to the Microsoft Windows Azure team for co-authoring the introduction to this article and for providing feedback and technical insights on Windows Azure.

Be well, do good, and stay Plesky!

6 essentials on Docker containers

Docker containers

Docker is one of the most successful open source projects in recent history, it’s fundamentally shifting the way people think about building, shipping and running applications. If you’re in the tech industry then the chances you’re already aware of the project. We’re going to look at 6 key points about Docker.

According to Alex Ellis, Docker Captain, Containers are disruptive and are changing the way we build and partition our applications in the cloud. Gone are monolithic systems and in come microservices, auto-scaling and self-healing infrastructure. Forget heavy-weight SOAP interfaces – REST APIs are the new lingua franca.

Whether you are wondering how Docker fits into your stack or are already leading the way – here are 6 essential facts that you and your team need to know about containers.

1. Containers are not VMs

Containers and virtual machines have similar resource isolation and allocation benefits – but a different architectural approach allows containers to be more portable and efficient. The main difference between containers and VMs is in their architectural approach.

Difference between containers and VMs

Virtual machines

VMs include the application, the necessary binaries, libraries, and an entire guest operating system — all of which can amount to tens of GBs. VMs run on top of a physical machine using a Hypervisor.  The hypervisors themselves run on physical computers, referred to as the “host machine”. The host machine is what provides the VM with resources, including RAM and CPU. These resources are divided among VMs.  So if one VM is running a more resource heavy application, more resources would be allocated to that one than to the other VMs running on the same host machine.

The VM that is running on the host machine is also often called a “guest machine.”

This guest machine contains both the application and whatever it needs to run that application (e.g. system binaries, libraries). It also carries an entire virtualized hardware stack of its own, including virtualized network adapters, storage, and CPU — which means it in turn has its own full-fledged guest operating system. From the inside, the guest machine behaves as its own unit with its own dedicated resources. From the outside, we know that it’s a VM — sharing resources provided by the host machine.

Containers

For all intents and purposes, containers look like a VM. The *key* is that the underlying architecture is fundamentally different between the containers and virtual machines. The big difference between containers and VMs is that containers *share* the host system’s kernel with other containers. The image above shows that containers package up just the user space, and not the kernel or virtual hardware like a VM does.

Each container gets its own isolated user space to allow multiple containers to run on a single host machine. All the operating system level architecture is being shared across containers.

The only parts that are created from scratch are the bins and libs – this is what makes containers so lightweight and portable. Virtual machines are built in the opposite direction. They start with a full operating system and, depending on the application, developers may or may not be able to strip out unwanted components.

  • Basically containers provide same functionality which provides by VMs, with out any hypervisor overhead
  • Containers are more light weight than VMs, since it shares kernel with host without hardware emulation (hypervisor)
  • Docker is not a virtualization technology, it’s an application delivery technology.
  • A container is “just” a process – literally a container is not “a thing”.
  • Containers use kernel features such as kernel namespaces, and control groups (cgroups)
  • Kernel namespaces provide basic isolation and CGroups use for resource allocation

Namespaces

  • Kernel namespaces provide basic isolation
  • It guarantee that each container cannot see or affect other containers
  • For an example, with namespaces you can have multiple processes with same PID in different environments (containers)
  • There are six types of namespaces available
  1. pid (processes)
  2. net (network interfaces, routing…)
  3. ipc (System V IPC)
  4. mnt (mount points, filesystems)
  5. uts (hostname)
  6. user (UIDs)

CGroups

  • CGroups(Control Groups) allocate resources and apply limits to the resources a process can take (memory, CPU, disk I/O)
    between containers
  • It ensure that each container gets its fair share of memory, CPU, disk I/O(resources),
  • Also It guarantee that single container not over consuming the resources

2. A Container (Process) can start up in one-twentieth of a second

Containers can be created much faster than virtual machines because VMs must retrieve 10-20 GBs of an operating system from storage. The workload in the container uses the host server’s operating system kernel, avoiding that step. According to Miles Ward, Google Cloud Platform’s Global Head of Solutions, a container (process) can start up in ~1/20th of a second compared to a minute or so for a modern VM. When development teams adopt Docker –  they add a new layer of agility, and productivitiy to the software development lifecycle.

Docker catalog

Image: Plesk Onyx

Having that speed right in place allows a development team to get project code activated, to test code in different ways, or to launch additional e-commerce capacity on its website –  all very quickly.
3. Containers have proven themselves on a massive scale
The world’s most innovative companies are adopting microservices architectures, where loosely coupled together services from applications. For example, you might have your Mongo database running in one container and your Redis server in another while your Node.js app is in another. With Docker, it’s become much more easier to link these containers together to create your application, making it easy-to-scale or update components independently in the future.

According to InformationWeek, another example is Google. Google Search is the world’s biggest implementer of containers, which the company uses for internal operations. In running Google Search operations, it uses containers by themselves, launching about 7,000 containers every second, which amounts to about 2 billion every week. The significance of containerization is that it is creating a standard definition and corresponding reference runtime that industry players will need to be able to move containers between different clouds (Google, AWS, Azure, DigitalOcean,…) which will allow applications and containers to become the portability layer going forward.
Docker helped create a group called the Open Container Initiative formed June 22nd 2015. The group exists to provide a standard format for container images and a specification for container runtimes. This helps avoid vendor lock-in and means your applications will be portable between many different cloud providers and hosts.
4. Containers are “lightweight”

As mentioned before, containers running on a single machine share the same operating system kernel – they start instantly and use less RAM. Docker for example has made it much easier for anyone — developers, sysadmins, and others — to take advantage of containers in order to quickly build and test portable applications. It allows anyone to package an application on their laptop, which in turn can run unmodified on any public cloud, private cloud, or even bare metal – the mantra is: “build once, run anywhere.”

Container architecture
5. Docker has become synonymous with containers
Docker is rapidly changing the rules of the cloud and upending the cloud technology landscape. Smoothing the way for microservices, open source collaboration, and DevOps. Docker is changing both the application development lifecycle and cloud engineering practices.

Stats:

  • 2B+ Docker Image Downloads
  • 2000+ contributors
  • 40K+ GitHub stars
  • 200K+ Dockerized apps
  • 240 Meetups in 70 countries
  • 95K Meetup members

Every day, lot’s of developers are happily testing or building new Docker-based apps with Plesk Onyx  – understanding where the Docker fire is spreading is the key to staying competitive in an ever-changing world.

Web Professionals understood that containers would be much more useful and portable if there was one way of creating them and moving them around, instead of having a proliferation of container formatting engines. Docker, at the moment, is that de facto standard.

They’re just like shipping containers, as Docker’s CEO Ben Golub likes to say. Every trucking firm, railroad, and marine shipyard knows how to pick up and move the standard shipping container. Docker containers are welcome the same way in a wide variety of computing environments.
6. Docker’s ambassadors: the Captains
Have you met the Docker Captains yet? There’s over 67 of them right now and they are spread all over the world. Captains are Docker ambassadors (not Docker employees) and their genuine *love* of all things Docker has a huge impact on the community.

That can be blogging, writing books, speaking, running workshops, creating tutorials and classes, offering support in forums, or organizing and contributing to local events.

Here, you find out on how you can follow all the Captains without having to navigate through over 67 web pages.

The Docker Community offers you the Docker basics, and lots of different ways to engage with other Docker enthusiasts who share a passion for virtual containers, microservices and distributed applications.

Got a cool Docker hack? Looking to organize, host or sponsor Docker meetups? Want to share your Docker story?

Get involved with the Docker Community here.
Docker basics

7. Alex Ellis – Docker Captain

I became a Docker Captain after being nominated by a Docker Inc. employee who had seen some of my training materials and activity in the community helping local developers in Peterborough to understand containers and how they fit into this shifting landscape of technology. The engergy and enthusiasm of Docker’s team was what lead me to start this journey on the Captains’programme.

It’s all about raising up new leaders in the community to advocate the benefits of containers for software engineering. We also write and speak about exciting new features in the Docker eco-system and  presence ourselves in conferences, meet-up groups and in the marketplace. Start my self-paced, Hands-On Docker tutorial here. If you have questions, or want to talk I’m on Twitter.

Thank you to Docker Captain Alex Ellis for co-authoring the introduction to this write-up and for providing feedback and technical insights on containers.

Be well, do good, and stay Plesky!

Cheers,
Jörg

Sources: Docker.com, Alex Ellis, Google Cloud Platform BlogInformationWeek, Freecodecamp

Next post >> What’s new in Stack Overflow’s 2016 survey