Сегодня я познакомлю вас, как использовать docker-compose, чтобы каждый мог общаться друг с другом!
docker-compose — это инструмент оркестровки контейнеров с открытым исходным кодом, официально предоставляемый Docker для определения и управления запуском нескольких контейнеров Docker.
Вы можете использовать файл YML для настройки всех служб, необходимых приложению, а затем использовать docker-compose для запуска команды для анализа конфигурации файла YML, чтобы создать и запустить все службы Docker, настроенные в файле.
Docker-compose можно понимать как набор сценариев упаковки для команд автоматической работы и обслуживания. Если сценарий написан правильно, вы можете выполнить команду для запуска всех связанных служб.
GitHub:https://github.com/docker/compose
Сокращение затрат на эксплуатацию и техническое обслуживание:Высокая эффективность развертывания、Контролируйте порядок запуска контейнеров、Быстрая миграция проекта、Обеспечьте единообразие сред разработки и производства и т. д.
Как правило, при развертывании системы могут использоваться такие приложения, как tomcat, mysql, redis, nginx, mongodb и т. д. Если используется контейнерное развертывание, оно может включать более десяти контейнеров (малые и средние проекты, если используется каждый контейнер). поддерживаться отдельно, это будет очень громоздко и может использоваться каждый раз. Каждый контейнер должен выполнять десятки команд, что очень неэффективно. С помощью docker-compose вы можете написать сценарий заранее, и его можно будет завершить за несколько минут после развертывания в сети. По сравнению с традиционными методами развертывания проектов эффективность значительно повышается. Вы также можете написать сценарий один раз и развернуть его несколько раз.
Продвижение проекта с открытым исходным кодом:Авторы проектов с открытым исходным кодом могут писатьdocker-composeСкрипт,Это позволяет пользователям быстро создавать среду и избегать различных ошибок проекта, вызванных аппаратной средой. Это также способствует продвижению проектов с открытым исходным кодом.
Проект docker-compose написан на Python. Он фактически вызывает API, предоставляемый службой Docker, для управления контейнером. Поэтому, если платформа операционной системы поддерживает API Docker, вы можете использовать Compose для управления оркестрацией.
Процесс: используйте Dockerfile, чтобы определить рабочую среду → используйте docker-compose.yml, чтобы определить службы, составляющие приложение → запустите docker-compose up, чтобы запустить приложение.
Это официальный адрес, и он может работать медленно. Рекомендуется использовать внутренний зеркальный адрес.
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Адрес внутреннего зеркала
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
Метод проверки
После загрузки вы можете проверить, есть ли файл docker-compose в каталоге /usr/local/bin.
# Проверьте версию. Если отображается номер версии, это означает, что установка прошла успешно.
docker-compose -version
удалить
sudo rm /usr/local/bin/docker-compose
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip -V
pip install docker-compose
docker-compose -version
удалить
sudo pip uninstall docker-compose
Вот список часто используемых команд docker-compose:
Примечание. Большинство команд компоновки необходимо выполнять в каталоге, где находится файл docker-compose.yml.
docker-compose -h # Посмотреть справку
docker-compose up # Создание и запуск всех контейнеров
docker-compose up -d # Создание и запуск всех контейнеров в фоновом режиме
docker-compose -f docker-compose.yml up -d # Укажите шаблон
docker-compose down # Остановите и удалите контейнеры, сети, тома и образы.
docker-compose logs # Просмотр журналов вывода контейнера
docker-compose logs -f Имя контейнера Просмотр журналов контейнера в реальном времени
docker-compose pull # Извлечение изображений зависимостей
dokcer-compose config # Проверьте конфигурацию
dokcer-compose config -q # Проверьте конфигурацию,Вывод будет только в случае возникновения проблемы
docker-compose restart # Перезапустить службу
docker-compose start # Запустить службу
docker-compose stop # Остановить службу
docker-compose up -d nginx Создайте и запустите контейнер nignx.
docker-compose exec nginx bash Войдите в контейнер nginx.
docker-compose ps Показать все контейнеры
docker-compose build nginx Создать образ
docker-compose build --no-cache nginx Сборка без кэширования
docker-compose config -q Проверьте конфигурацию файла (docker-compose.yml). Если конфигурация правильная, ничего не будет выводиться. Если конфигурация файла неверна, будет выведено сообщение об ошибке.
docker-compose events --json nginx Вывод журнала докера nginx в виде json
docker-compose pause nginx Приостановить контейнер nignx
docker-compose unpause nginx Восстановить контейнер ningx
docker-compose rm nginx Удалить контейнер (перед удалением контейнер должен быть закрыт)
Создайте новый файл docker-compose.yml. Это простой пример. Более подробные случаи вы можете изучить самостоятельно.
version: '1'
services:
web1:
image: nginx
ports:
- "8081:80"
container_name: "test1"
networks:
- dev
web2:
image: nginx
ports:
- "8082:80"
container_name: "test2"
networks:
- dev
- pro
networks:
dev:
driver: bridge
pro:
driver: bridge
yamlПроверка грамматики:https://www.toyaml.com/index.html
Создайте каталог веб-приложения, скопируйте файл docker-compose.yaml в каталог веб-приложения и используйте docker-compose для запуска приложения.
docker-compose up -d
тест доступа
http://127.0.0.1:8081
http://127.0.0.1:8082
docker-compose подходит для развертывания небольших и средних проектов. Если вы хотите создать распределенную среду развертывания, рекомендуется использовать swam и k8s. Если вы развертываете проекты только для обучения и исследований в среде с одним компьютером, это все равно хороший выбор.