Ответ 1
Docker - это инструмент командной строки, который использует containerization для управления несколькими изображениями, контейнерами и томами и т.д. - контейнер в основном легкая виртуальная машина. См. https://docs.docker.com/ для подробной документации.
До недавнего времени Docker не запускался на родной Mac или ОС Windows, поэтому был создан еще один инструмент Docker-Machine, который создает виртуальную машину (используя еще один инструмент, например Oracle VirtualBox), запускает Docker на этой виртуальной машине и помогает координировать работу между ОС хоста и VM Docker.
Так как Docker не работает на вашей основной операционной системе, докер-машине необходимо иметь дело с IP-адресами и портами и томами и т.д. И его настройки сохраняются в переменных среды, а это значит, что вы должны запускать такие команды каждый раз, когда вы открываете новую оболочку:
eval $(docker-machine env default)
docker-machine ip default
Docker-Compose - это, по сути, более высокоуровневый скриптовый интерфейс поверх самого Docker, что упрощает (якобы) управление запуском нескольких контейнеров одновременно. Его конфигурационный файл (docker-compose.yml
) запутан, так как некоторые его параметры передаются в процесс докеров на нижнем уровне, а некоторые используются только на более высоком уровне.
Я согласен, что это беспорядок; мой совет - начать с одного файла Docker и запустить его либо с помощью docker-machine
, либо с помощью новой бета-версии Mac/Windows Docker и игнорировать docker-compose
, пока вы не почувствуете себя более комфортно с инструментами нижнего уровня.