#docker
#docker
Вопрос:
Каков наилучший способ разделить среды разработки разных проектов с помощью docker?
Говоря о Mac, когда он не поддерживался в качестве встроенного, у меня было два docker-компьютера, скажем, ProjectA и ProjectB, поэтому я просто eval $(docker-machine env projectA)
для того, чтобы получить доступ ко всем контейнерам для этого проекта.
Что касается контейнеров, у меня было:
Проект:
- MySQL
- MongoDB
- ActiveMQ
- Cassandra
ProjectB:
- MySQL
- MongoDB
Возможно ли такое разделение, чтобы любой, кто это делает docker ps -a
, видел только контейнеры, связанные с текущим выбранным компьютером?
Я могу продолжать делать это с помощью docker-machine, но тогда он не будет использовать встроенные функции и работать медленнее.
Спасибо!
Комментарии:
1. если вы используете,
docker-compose
вы можете сделатьdocker-compose ps
, и он должен показывать только контейнеры, связанные с локальным файлом compose
Ответ №1:
Docker изначально не поддерживается на Mac — Docker для Mac использует встроенную виртуализацию, но все еще работает виртуальная машина Linux, к которой подключается клиент Docker.
Вы правы в том, что производительность и интеграция с Docker для Mac выше, но компромисс заключается в том, что вы получаете только одну виртуальную машину, вы не можете создать вторую виртуальную машину и запустить два движка Docker, что является единственным способом физического разделения контейнеров.
Docker для Mac и Docker Toolbox могут сосуществовать, так что это один из вариантов. Другой вариант — разделить их логически — запустив связанные контейнеры в одной сети Docker, — но все они все равно будут отображаться в docker ps
.