Развертывание приложений SpringBoot с помощью Docker Compose

Spring Boot

Резюме

Docker Compose — это инструмент для определения и запуска нескольких приложений-контейнеров Docker. С помощью Compose вы можете настроить службы приложений с помощью файла YAML, а затем с помощью одной команды развернуть все настроенные вами службы.

Установить

Скачать Docker Compose:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

Измените разрешения файла, чтобы он был исполняемым:

chmod +x /usr/local/bin/docker-compose

Проверьте, успешно ли он был установлен:

docker-compose --version

展示图片

Шаги по использованию Docker Compose

  • Используйте Dockerfile для определения среды приложения, которая обычно требуется только тогда, когда необходимо изменить исходное поведение образа;
  • Используйте docker-compose.yml для определения служб приложений, которые необходимо развернуть, чтобы сценарий можно было развернуть за один раз;
  • Используйте команду docker-compose up для одновременного развертывания всех служб приложений.

общие команды docker-compose.yml

image

Укажите имя работающего образа

# 运行的是mysql5.7的镜像
image: mysql:5.7

container_name

Настроить имя контейнера

# 容器名称为mysql
container_name: mysql

ports

Укажите сопоставление портов хоста и контейнера (HOST:CONTAINER)

# 将宿主机的3306端口映射到容器的3306端口
ports:
  - 3306:3306

volumes

Смонтируйте файл или каталог хоста в контейнер (HOST:CONTAINER)

# 将外部文件挂载到myql容器中
volumes:
  - /mydata/mysql/log:/var/log/mysql
  - /mydata/mysql/data:/var/lib/mysql
  - /mydata/mysql/conf:/etc/mysql

environment

Настроить переменные среды

# 设置mysqlroot帐号密码的环境变量
environment:
  - MYSQL_ROOT_PASSWORD=root

links

Службы, которые подключаются к другим контейнерам (SERVICE:ALIAS)

# 可以以database为域名访问服务名称为db的容器
links:
  - db:database

Общие команды Docker Compose

Соберите, создайте, запустите соответствующий контейнер:

# -d表示在后台运行
docker-compose up -d

Остановить все связанные контейнеры:

docker-compose stop

Вывести всю информацию о контейнере:

docker-compose ps

Разверните приложение с помощью Docker Compose

Напишите файл docker-compose.yml

Docker Compose делит управляемые контейнеры на три уровня: проекты, службы и контейнеры. Все сервисы, определенные в docker-compose.yml, образуют проект, узел сервисов — это сервис, а сервис — это контейнер. Доступ к контейнерам и контейнерам можно получить, используя имя службы в качестве доменного имени.Например, в службе mall-tiny-docker-compose служба db mysql может быть доступна через адрес jdbc:mysql://db:3306.

version: '3'
services:
  # 指定服务名称
  db:
    # 指定服务使用的镜像
    image: mysql:5.7
    # 指定容器名称
    container_name: mysql
    # 指定服务运行的端口
    ports:
      - 3306:3306
    # 指定容器中需要挂载的文件
    volumes:
      - /mydata/mysql/log:/var/log/mysql
      - /mydata/mysql/data:/var/lib/mysql
      - /mydata/mysql/conf:/etc/mysql
    # 指定容器的环境变量
    environment:
      - MYSQL_ROOT_PASSWORD=root
  # 指定服务名称
  mall-tiny-docker-compose:
    # 指定服务使用的镜像
    image: mall-tiny/mall-tiny-docker-compose:0.0.1-SNAPSHOT
    # 指定容器名称
    container_name: mall-tiny-docker-compose
    # 指定服务运行的端口
    ports:
      - 8080:8080
    # 指定容器中需要挂载的文件
    volumes:
      - /etc/localtime:/etc/localtime
      - /mydata/app/mall-tiny-docker-compose/logs:/var/logs

Примечание. Если служба mall-tiny-docker-compose не может подключиться к mysql, вам необходимо создать базу данных mall в mysql и импортировать сценарий mall.sql. конкретная ссылкаИспользуйте Dockerfile для создания образа Docker для приложения SpringBoot.в разделе «Запуск службы и настройки mysql».

Создайте образ mall-tiny-docker-compose с помощью плагина maven.

展示图片

Примечание: проблемы со сборкой могут относиться кСоздавайте образы Docker для приложений SpringBoot с помощью подключаемого модуля Maven.

Запустите команду Docker Compose, чтобы запустить все службы.

Сначала загрузите файл docker-compose.yml на сервер Linux, а затем выполните следующую команду в текущем каталоге:

docker-compose up -d

展示图片

Адрес документа интерфейса доступа http://192.168.3.101:8080/swagger-ui.html:

展示图片

Адрес исходного кода проекта

GitHub.com/macro-positive/…

публика

проект торгового центраПолный набор учебных пособий сериализуется,Обратите внимание на общедоступный номерПолучите это прямо сейчас.

公众号图片