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
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.
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.
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
so is there a difference between docker and the virtualenv in python or do i just compared the un-comparing stuff ?
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.
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.
Yes, it's perfect to make isolated projects and configure a specific version of dependecies.
Does Docker for Mac work with Xcode (cli stuff)?
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.
A very good introduction is available on youtu.be/YFl2mCHdv24
What is