Category: Containers

  • Native support for Docker apps coming soon to Parallels

    Native support for Docker apps coming soon to Parallels

    When I think of Parallels, the first thing that comes to mind is virtual machines. I have used Parallels for years as a means of running a virtualized instance of a Windows operating system from within Mac OS X. In addition to virtual machines, though, Parallels was also doing containers before containers were cool, and announced last week that it will soon include native support for Docker applications as well.

    Parallels was working with container technologies years ago with Virtuozzo and the open source OpenVZ platform. The company claims to be the most widely-deployed containers platform in the world, with over one million instances. With the launch of native Docker support, service providers will be able to provide container-based virtual private servers on the Parallels Cloud Server platform to customers that want to build with Docker applications. Parallels

    “A challenge customers face today is running Docker images in a virtualized environment based on a hypervisor,” explained James Bottomley, chief technology officer of virtualization for Parallels. “This takes a core benefit of Docker—that the applications run in containers at higher density and performance—and reduces that benefit considerably.”

    Bottomley added, “With Parallels solution, the service provider can offer the customer an environment where Docker is running on top of Parallels Cloud Server containers-based virtualization for optimal performance and at high-density.”

    Why does this matter? I spoke with Bottomley myself to get more information. He told me that the primary advantage of containers—particularly in the cloud—is they have different elasticity and density capabilities than a hypervisor. It is faster and easier to scale containers than entire virtual machines.

    There is a disadvantage as well. Bottomley stressed that container technology requires that all of the containers share the same kernel. So, it’s not possible, for example, to launch a Windows-based container on a Linux kernel, or a Linux-based container on a Mac OS X kernel.

    The inclusion of native Docker support in Parallels Cloud Server will be significant for smaller companies. Large enterprises like Microsoft or Amazon have virtually unlimited resources to invest in scalability. They can simply run container apps in separate hypervisor instances, and just continue to add more hypervisor instances to meet demand, but that is a costly and inefficient way to address scalability.

    With Docker apps running on Parallels Cloud Server, smaller cloud service providers will have a secure, high-density virtual server environment with the elasticity and scalability to compete with much larger public cloud providers. Bottomley told me that the Parallels solution with Docker containers reduces the physical server overhead by a factor of one-third.

    Philbert Shih, managing director, Structure Research agrees there is significant market opportunity for cloud service providers to deliver a cost-effective platform for developing and deploying Docker applications. “The answer lies in building an optimized infrastructure environment that is dense and scales, while being able to maintain high levels of performance and facilitate portability of workloads.”

    The Parallels announcement is just the latest in a string of victories for Docker. Microsoft added support for Docker containers on Linux virtual servers in Azure earlier this year, and recently announced a partnership with Docker to bring native container support to the next iteration of Windows Server.

    As the container concept gathers mainstream steam, though, Docker also faces increasing competition from rivals like Rocket. Expanding Docker’s sphere of influence with native support on popular, and widely-used platforms will help to cement it as the de facto leader of container apps.

    The update to Parallels Cloud Server to introduce native Docker support is expected in the first quarter of 2015.

  • Microsoft partners with Docker to bring containers to Windows Server

    Microsoft partners with Docker to bring containers to Windows Server

    Docker has taken the DevOps world by storm, and that has caught the attention of Microsoft. Now, Microsoft and Docker are teaming up to bring native support for the container technology to the next generation(s) of Windows Server.

    Docker is an open platform that enables organizations to run any application as a Docker container. The Docker containers can be implemented across virtually any infrastructure—delivering tremendous agility and flexibility for managing virtual applications. The container concept accelerates software development timeframes, and allows organizations to reduce costs and improve efficiency at the same time. It’s easy to understand why Docker is so popular.

    There have been more than 21 million downloads of the Docker platform, and there are over 45,000 “Dockerized” applications available on the Docker Hub Registry, and 13,000-plus Docker-related projects on GitHub. Just last month Docker took in $40 million in another round of investment.

    Major names in tech, like Rackspace, Google, and IBM have already pledged their support for Docker. Now Microsoft wants to bring the hot technology to Windows.

    Docker Engine for Windows Server will allow customers to create Docker container applications that can run locally on Windows Server, or on virtual Windows Server instances in the cloud on Azure. In a blog post announcing the Docker partnership, Ross Gardler of Microsoft Open Technologies explains, “As part of this announcement, MS Open Tech is contributing code to the Docker client that supports the provisioning of multi-container Docker applications on Azure. This code removes the need for our cross-platform CLI to bootstrap the Docker host. In other words, we have taken a simple process and made it even simpler.

    “This development is interesting because Docker has been a really fast moving technology having come out of almost nowhere a year ago to where now it is an incredibly widely supported technology,” stated Al Hilwa, an IDC analyst. “It is a bit of engineering but Microsoft wisely decided that they did not want to leave Windows developers out of the Docker party. This is good for Microsoft because those 45K ‘Dockerized’ applications will be able to run on Windows.”

    To be fair, Microsoft isn’t completely new to Docker. Earlier this year it added support for Docker in Azure, but only on Linux. This new partnership launches an open source project to develop a Docker Engine runtime for building, running, and managing Docker containers natively within Windows Server. Docker Engine for Windows Server will be managed as a Docker open source project, but Microsoft will be a major contributor to the community.

    The Microsoft blog post describes why Docker’s container technology is so important for the fast-paved development of a DevOps environment. “Containers do not include a full operating system, consequently rapid development and scaling of container-based applications is possible through very quick boot and restart operations. Furthermore, highly efficient creation of modified container images, by virtue of only capturing the differences between the original and new containers, enables improved management and distribution of containerized applications; the resulting images are both small and highly portable across almost any platform.”

    Hilwa summed up with some thoughts about the new strategic vision of Microsoft. “What is even more interesting is that the work on the Docker engine in Windows is being done in open source—really showcasing the new Microsoft attitude towards open source (e.g. the open sourcing of Roslyn a few months ago). I really think we are seeing a faster and more open Microsoft, one that is more willing to integrate and collaborate with competing technologies without a lot of hesitation.”

  • Why We Build in Docker Containers

    Why We Build in Docker Containers

    We are using Docker as a virtualization technology for our continuous delivery/deployment pipelines, in Rultor.com. We experimented with other technologies and Docker’s approach proved to be the best fit for our needs. Docker is a command line tool that can run a shell command in a virtual Linux, inside an isolated file system. Every time we build, we want to run build scripts in their own Docker containers, perfectly isolated from other builds in other projects.

    There are three main reasons…

     

     

    –THIS STORY HAS BEEN MOVED TO CONTAINER JOURNAL–


  • DOCKERCON 2014

    dockercon14

    Registration and call for papers are now open for DockerCon 2014!

    DockerCon is a two-day Docker-centric conference organized by the team at Docker Inc. We’ll have speakers talking about Docker, DevOps, operations and development. Our talks will include topics that will interest Developers, SysAdmins as well as C-level executives.

    The conference will start with general session with keynotes in the mornings, untill 11:00am, followed by three different tracks:

    • Docker University
    • Docker for Developers
    • Docker for Ops & Sysadmins

    Docker University will be the place to learn about using Docker, building Docker images as well as learning about the Docker API.

    In the Docker for Developers track, you will learn about Docker best practices, CI/CD, orchestration, Registry, Docker-core, real-life use cases and more.

    The Docker for Ops & Sysadmins track will introduce you to Docker performance, metrics, security, scaling and orchestration.

    DockerCon is also the occasion to meet with the Docker eco-system: contributors, developers, devops, ops, hackers, partners, and also the Docker team including Solomon Hykes (Founder) andBen Golub (CEO).

    We are also organizing a Docker Hackathon during the week-end prior to DockerCon. Winners will be able to present their project during the conference. Register here if you would like to participate.

    We invite you to follow the official twitter account: @DockerCon, in order to get the latest updates.

    Happy Hacking!

  • DOCKER 0.9: INTRODUCING EXECUTION DRIVERS AND LIBCONTAINER

    From the Docker Blog:

    Fellow Dockers,

    Today we are happy to introduce Docker 0.9. With this release we are continuing our focus on quality over features, shrinking and stabilizing the core, and providing first-class support for all major operating systems.

    In addition to dozen of bugfixes, Docker 0.9 includes 2 major improvements: execution drivers andlibcontainer.

    As usual, for a complete list of improvements, you can check out the Changelog.

    Execution drivers

    First, we are introducing an execution driver API which can be used to customize the execution environment surrounding each container. This allows Docker to take advantage of the numerous isolation tools available, each with their particular tradeoffs and install base: OpenVZ, systemd-nspawn, libvirt-lxc, libvirt-sandbox, qemu/kvm, BSD Jails, Solaris Zones, and even good old chroot. This is in addition to LXC, which will continue to be available as a driver of its own.

    There are already several projects underway to develop more drivers. Want to join the fun? Come say hi on #docker-dev on Freenode, and we’ll help you get started.

     New default driver: libcontainer

    docker-execdriver-diagram

    Second, we are introducing a new built-in execution driver which is shipping alongside the LXC driver. This driver is based on libcontainer, a pure Go library which we developed to access the kernel’s container APIs directly, without any other dependencies.

    Thanks to libcontainer, Docker out of the box can now manipulate namespaces, control groups, capabilities, apparmor profiles, network interfaces and firewalling rules – all in a consistent and predictable way, and without depending on LXC or any other userland package. This drastically reduces the number of moving parts, and insulates Docker from the side-effects introduced across versions and distributions of LXC. In fact, libcontainer delivered such a boost to stability that we decided to make it the default. In other words, as of Docker 0.9, LXC is now optional. To switch back to the LXC driver, simply restart the Docker daemon with docker -d -e lxc. Of course we will continue to support the LXC driver going forward.

    Using libcontainer for your Go projects

    We have developed libcontainer in the hope that other projects will reuse it. If you’re interested in playing with the native container features of Linux – namespaces, cgroups, capabilities etc – then we encourage you to start hacking! To get started go get the Go package and check out the API docs:

     

    1
    2
    go get github.com/dotcloud/docker/pkg/libcontainer
    godoc github.com/dotcloud/docker/pkg/libcontainer

     Objective 1.0

    This release is a major step towards a stable, production-ready 1.0 release. We plan on making our next release, 0.10, the first release candidate for 1.0.

     As discussed previously, the goals for Docker 1.0 are:

    • production quality

    • first class support of all major operating systems

    • a shrunken core and a stable plug in architecture

    • well documented

    • able to be commercially supported by Docker and our partners

    • Docker able to offer long term support

    We are already hard at work preparing 0.10, with several exciting improvements that we think you will like. If you would like a sneak peek, or if you feel like contributing – come say hi! We are on #docker on Freenode. We welcome enthusiasts of all levels and can help you get started with your first contribution. As always, thanks go out to our community of contributors, now 352 strong!

    Thanks and happy hacking!

     

    The Docker team