Many great questions popped up in this week’s Introduction to Docker webinar where we covered the basics of the Docker technology, discussed the Continuous Integration (CI) use case and a product demo of Docker Trusted Registry and Docker Engine. Instead of keeping the Q&A for the webinar attendees only, we wanted to share in a blog post as anyone new to Docker may have similar questions.
So what is Docker? Docker is the open platform to build, ship and run applications. The Docker Project is one of the fastest growing open source projects and Docker, Inc. is the is the primary sponsor of project and delivers supported commercial solutions for developers and sysadmins of distributed applications.
We have more great webinar topics lined up! To attend future webinars, register here.
Introduction to Docker Webinar Q&A
Q: What is an image and container?
Docker images are the basis for application containers. The way I think about it is the image is the content at rest, a collection of files that I ship around – pulling from Docker Hub to my local environment, make changes and then shipping it to my Trusted Registry. When you run the docker command
docker run, it is building and running a container from that image.
Q: Do I always need a base image to install software in a container?
Docker containers do not need individual OS’s installed in each container. Docker Engine is installed on top of a modern Linux distribution and the containers that run on top of the Engine share the Linux kernel. Inside of the container are only the pieces needed for that application, it could be as simple as a statically composed binary – everything that binary needs to run.
Q: Is there a good place to get examples for deploying Docker images for different technologies (i.e. Ruby on Rails project)?
Yes. Docker Hub is not only a hosted registry service but also a public library of Docker images. There are private, public and Official Official Repos available. Public repos contain images that are contributed by the Docker community of users. Official Repos contain images that are maintained by the upstream partner or Docker.
Q: What kind of apps can I put in a container?
Containers are lightweight and share an OS kernel. This type of application architecture are well suited for microservices. Instead of a single monolithic code base, a your application could be many different services that are loosely coupled together, each in their own container.
Q: Do I have to worry about an update to an underlying framework breaking services that depend on earlier versions of that framework?
As outlined in a previous question, because each language stack and its relevant dependencies are packaged inside of the container and effectively isolated from the other containers there is no “underlying framework” that all the containers are tied to. Many users love Docker for this exact reason – instead of worrying about how to incorporate a version update to a language stack, they can keep each version as a separate image.
Q: What operating systems are supported?
Any modern Linux distribution is supported to run Docker today. The Docker Subscription provides commercial support for the open source Docker Engine for the following supported distributions. For running Docker Engine open source only, you can see the installation platforms here.
Q: How are the containers able to run on different OS’s like Linux, Debian etc?
The Docker Engine is what is running the container so anywhere the Docker Engine is running can effectively run those containers. A Docker Engine running on RHEL can run a container from Ubuntu or CentOS. The fundamentally thing they are sharing is the kernel, so anywhere a modern kernel (3.10 or later) can run containers. The containers are sharing the kernel, not the file system.
Q: Can I run a Docker image created on Linux and run on Windows?
Containers can not be created on Windows today, but Microsoft in partnership with Docker have announced plans that the next version of Windows Server will support Docker containers. This does not mean that you will be able to run Linux containers on Windows hosts and vice versa. Because containers share the kernel, this will not work. However you will be able to create applications that use both Linux and Windows containers and have them work together on their respective hosts.
Q: What hosting company / service provider do you recommend for running Docker? Is there a list somewhere?
One of the great things about Docker is that you can run Docker Engines on any cloud a modern Linux distribution is supported. This includes running in bare metal or virtual machines.
Q: Do you have any case studies of big financial companies that use Docker for Continuous Integration?
Continuous Integration and Delivery is one of the most popular use cases for Docker out there today. This use case also cuts across all vertical industries but there are a number of examples of financial companies using Docker today. View ING’s talk on using Docker for CI and many others here.
Q: Do you have a registry service like Docker Hub that can be deployed on a LAN as a private registry inside of a company?
Yes. Docker provides two commercial registry services depending on your needs. Docker Hub is a hosted SaaS service. Docker Trusted Registry is an application that you run in your infrastructure. Whether that is your data center or in a cloud provider of your choice.
Q: The Trusted Registry Web admin UI says it requires a CS Docker instance, what does that mean?
Docker Trusted Registry is one of two software components bundled together with commercial support in the Docker Subscription. A CS Docker instance stands for commercially supported Docker Engine. The Docker Subscription bring the benefits of software support and maintenance to the open source Docker Engine for users who need to have a private communications channel with Docker engineers to report and resolve bugs, escalate issues and a supported operating environment.
Q: Where do I get a license for Trusted Registry? How do I download it?
Docker Trusted Registry is a licensed commercial software product that is available for a free 30 day trial or purchase via a monthly or annual subscription. Registration for the trial is available through Docker Hub.
See you online soon – until then, here are some more resources:
- Sign up for the next webinar here
- Register for the free 30 day trial through Docker Hub
- Read more about “What is Docker”
Learn More about Docker
- New to Docker? Try our 10 min online tutorial
- Share images, automate builds, and more with a free Docker Hub account
- Read the Docker 1.7 Release Notes
- Subscribe to Docker Weekly
- Register for upcoming Docker Online Meetups
- Attend upcoming Docker Meetups
- Register for DockerCon Europe 2015
- Start contributing to Docker