DEV Community

What is docker?

Ahmed Khaled MOhamed on January 02, 2018

Collapse
 
davids89 profile image
David

Docker is a software that lets you to setup an app like a running part of your device. It's like a virtual machine but lighter. A docker container get the resorces by the local system so it's not a operative system by himself.

With a Docker container you can determinate the versions of the dependencies, so you will not have a version issue in the future.

Also, is great to make a deploy, so it is working in local it will do it in the server

Collapse
 
aaahmedaa profile image
Ahmed Khaled MOhamed

so is there a difference between docker and the virtualenv in python or do i just compared the un-comparing stuff ?

Collapse
 
blardo profile image
Anthony Blardo™

Virtualenv provides dependency isolation for a specific programming language - it lets you use different versions of Python and keep the pip packages you want located within the project space you setup.

Docker is a similar concept in that it keeps things isolated, but it steps down a tier lower in the stack. Docker lets you build containers that are effectively smaller operating systems in a can that can leverage the host OS's resources through the Docker daemon.

You can create a Dockerfile that creates a container which installs Python, installs the pip dependencies using a Pipfile inside the container, and then run the app using that container all without causing an impact to the local filesystem on the machine that is executing the container.

A Docker container's only contract to the outside world is exposing a port to allow traffic to communicate into the service inside of the container.

Thread Thread
 
kayis profile image
K

Is it a good idea to use this for front-end dev-environments?

I had some issues with npm and nodejs versions back in the days, would be nice if I could create a something stable that would minimize dev-env setup and would always build my stuff.

Thread Thread
 
davids89 profile image
David

Yes, it's perfect to make isolated projects and configure a specific version of dependecies.

Thread Thread
 
kayis profile image
K

Does Docker for Mac work with Xcode (cli stuff)?

Collapse
 
msoedov profile image
Alex Miasoiedov • Edited

Docker is a toolkit for creating, running and shipping containers and images on Linux system.

Docker image is a filesystem snapshot, packed version of all files required to run some process (application).

Docker container is a process (application) which executes from files and environment packed into docker image

Docker is not a VM, it shares Linux kernel with other processes. It's just a restricted environment for execution of a process.

Collapse
 
mathur_anurag profile image
Anurag Mathur 

A very good introduction is available on youtu.be/YFl2mCHdv24

Collapse
 
jasursaribaev profile image
jasursaribaev

What is