Docker vs Vagrant

Every Docker image, as I understand, is based on base image – for example, Ubuntu.

And if I want to isolate any process I should deploy ubuntu docker base image (where is difference with Vagrant here?), and create a necessary subimage after it installing on ubuntu image?

  • Not able to read the image LABEL key and values of particular image using AWS java APIs
  • Docker ignores ENTRYPOINT
  • Linking django and mysql containers using docker-compose
  • Docker-machine create with generic driver, Certificates not working but SSH does
  • golang project can't find dependencies when run inside a docker container
  • connecting to exposed docker container
  • So, if Ubuntu is launched on Vagrant and on Docker, where is practice difference?
    And if to use docker provider in Vagrant – where here is difference between Vagrant and Docker?

    And, in Docker is it possible to isolate processes on some PC without base image without it’s sharing to another PC?

  • “tput: No value for $TERM and no -T specified ” error on docker [on hold]
  • Giving a Docker container configuration access to a device
  • What is the benefit of Docker container for a memcached instance?
  • Docker linked containers, Docker Networks, Compose Networks - how should we now 'link' containers
  • kubernetes production deploy docker multi-node or ubuntu bare metal?
  • Can't alter admin user password for PostgreSQL in Docker
  • 2 Solutions collect form web for “Docker vs Vagrant”

    Vagrant is a utility to help you automate setting up VMs. Docker is a utility that helps you use containerization in linux.

    A virtual machine runs a whole system, and emulates hardware. Containers section off processes in a single running kernel without emulating hardware.

    Both a VM and a Docker image may be Ubuntu 14.04, but with the Docker image you don’t need to run the whole OS.

    For example, if I want to run an nginx container based on ubuntu, I’d end up with only the nginx process running. No upstart/systemd/init is needed. A VM would run an init system, manage its own networking, and run other services as well. The container image approach that uses a linux distro base is mostly for convenience.

    It is entirely possible to run Docker containers with very minimal images. A statically compiled binary alone in an image is all you’d need to run a container.

    Vagrant : Vagrant is a project that helps the spawning of virtual machines. It started as an command line of VirtualBox, something similar to Gemfile for VM’s. You can choose the base image to start with, network, IP, share folders and put it all in a file that anyone can reuse to spawn the same configured machine. Vagrant has different extensions, provisioning options and VM providers. You can run a VirtualBox, VMware and it is extensible enough to be able to create instances on EC2.

    Docker : Docker, allows to package an application with all of its dependencies into a standardized unit of software development. So, it reduces a friction between developer, QA and testing. It dynamically change your application, adding new capabilities every single day, scaling out services to quickly changing the problem areas. Docker is putting itself in an excited place as the interface to PaaS be it networking, discovery and service discovery with applications not having to care about underlying infrastructure. Yes, their are still issues with docker in production, but, hopefully, we’ll see the solutions to those problems, as docker team and contributors working hard on those issues. As Docker Volume driver allows third-party container data management solutions to provide data volumes for containers which operate on data, such as database, key-value stores, and other stateful applications. The latest version is coming with much more flexibility, complete orchestration build-in, advanced networking, secrets management, etc. As you can see one, rexray, as volume plugin and provides advanced storage functionality. emccode/rexray We’re finally starting to agree on more than just images and run time.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.