Эта статья была впервые опубликована в моем личном блоге:адрес
Введение
Compose — это приложение Docker, которое пользователи определяют и запускают в нескольких контейнерах. В Compose вы можете использовать файлы YAML для настройки служб приложений. Затем с помощью всего одной простой команды вы можете создать и запустить все настроенные вами службы.
В основном есть три шага к использованию Compose:
- Определите среду своего приложения в Dockfile, чтобы ее можно было реплицировать где угодно.
- Определите службы, из которых состоит ваше приложение, в файле docker-compose.yml, чтобы они могли работать вместе в изолированной среде.
- Наконец, запустите docker-compose up, и Compose запустит все приложение.
Установка docker-compose
В настоящее время существует два основных метода установки, и автор использует первый метод.
Первое
Загрузите последний файл docker-compose
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
После завершения загрузки необходимо/usr/local/bin/docker-compose
расширение прав каталога
chmod +x /usr/local/bin/docker-compose
Результаты теста
docker-compose --version
输出
docker-compose version 1.16.1, build 6d1ac21
секунда
Путем установки pip
pip install docker-compose
Предпосылка заключается в том, что на вашем сервере должен быть установлен компонент pip.
удалить
Первое
rm /usr/local/bin/docker-compose
секунда
pip uninstall docker-compose
использовать
Здесь мы возьмем кафку в качестве примера
version: '2'
services:
zoo1:
# 依赖于wurstmeister/zookeeper镜像,本地无则自动下载
image: wurstmeister/zookeeper
restart: unless-stopped
hostname: zoo1
# 映射端口
ports:
- "2181:2181"
# 容器名称
container_name: zookeeper
kafka1:
# 依赖于wurstmeister/kafka镜像
image: wurstmeister/kafka
# 映射端口
ports:
- "9092:9092"
# 目录挂载 【容器目录:宿主机目录】
volumes:
- /var/log/kafka/logs:/var/docker/kafka/logs
# 配置环境变量
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 1
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CREATE_TOPICS: "stream-in:1:1,stream-out:1:1"
# 解决服务启动顺序问题,例如下面容器会先确定zoo1和redis两个服务,最后才启动kafka1服务
depends_on:
- zoo1
- redis(实际无该容器)
# 容器名称
container_name: kafka
Выполнить docker-compose
Сначала загрузите docker-compose.yml на сервер, а затем введите каталог для выполнения:
docker-compose up -d
Затем запустите службу фоновой сборки
Если вы хотите запустить службу отдельно, вы можете:
docker-compose up -d 指定服务名称
例子:docker-compose up -d zoo1
Кейс по организации обслуживания
version: "3"
services:
# 指定服务名称
#服务注册与发现中心
simonEureka:
image: simon/eureka-server:2.0.1-SNAPSHOT
hostname: simonEureka
ports:
- "8100:8100"
#配置中心
simonConfig:
image: simon/config-server:2.0.1-SNAPSHOT
hostname: simonConfig
ports:
- "8101:8101"
depends_on:
- simonEureka
# always – 不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
# no – 容器退出时不要自动重启。这个是默认值。
# on-failure[:max-retries] – 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。
# unless-stopped - 不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。
restart: always
#路由网关
apigateway:
image: simon/apigateway:2.0.1-SNAPSHOT
ports:
- "8102:8102"
depends_on:
- simonEureka
- simonConfig
restart: always
#监控平台
admin:
image: simon/admin:2.0.1-SNAPSHOT
ports:
- "8103:8103"
depends_on:
- simonEureka
- simonConfig
restart: always
---------------------
作者:AaronSimon
来源:CSDN
原文:https://blog.csdn.net/aaronsimon/article/details/82711610
版权声明:本文为博主原创文章,转载请附上博文链接!
На данный момент файлы в каталоге simon нашего сервера должны быть следующими:
apigateway:2.0.1-SNAPSHOT.jar
admin:2.0.1-SNAPSHOT.jar
config-server:2.0.1-SNAPSHOT.jar
eureka-server:2.0.1-SNAPSHOT.jar
docker-compose.yml
будь осторожен
Если наш yml-файл не docker-compose.yml, нам нужно указать имя yml-файла при организации сервисов.
docker-compose -f docker-kafka.yml up -d
Когда мы сталкиваемся с порядком запуска служб, мы можем разделить docker-compose.yml в соответствии с порядком служб.
Общие команды docker-compose
Заказ | описывать |
---|---|
docker-compose up -d nginx | начать сборку контейнера nignx |
docker-compose exec nginx bash | Войдите в контейнер nginx |
docker-compose down | Удалить все контейнеры NGINX, зеркало |
docker-compose ps | показать все контейнеры |
docker-compose restart nginx | перезапустить контейнер nginx |
docker-compose run --no-deps --rm php-fpm php -v | Не запускайте связанный контейнер в php-fpm, и контейнер выполняет php -v для удаления контейнера после завершения выполнения |
docker-compose build nginx | построить образ |
docker-compose build --no-cache nginx | сборка без кеша |
docker-compose logs nginx | Просмотр логов nginx |
docker-compose logs -f nginx | Проверить конфигурацию файла (docker-compose.yml), если конфигурация правильная, ничего не выводится, если конфигурация файла неправильная, выводить информацию об ошибке |
docker-compose pause nginx | Приостановить контейнер nignx |
docker-compose unpause nginx | восстановить контейнер ningx |
docker-compose rm nginx | Удалить контейнер (контейнер должен быть закрыт перед удалением) |
docker-compose stop nginx | остановить контейнер nginx |
docker-compose start nginx | запустить контейнер nignx |