Эта статья направлена на отработку базового использования Docker путем докеризации конкретного проекта Spring Boot + MongoDB. После докеризации проекта внутренняя служба получает доступ к базе данных в обычном режиме, и одностраничное веб-приложение, размещенное на внутренней службе, по-прежнему может быть открыто.Короче говоря, проект находится в рабочем состоянии, как и ожидалось. Конкретные проекты см.этот репозиторий GitHub.
Чтобы изучить основные принципы и основы использования Docker, вы можете обратиться к этой электронной книге с открытым исходным кодом.Docker — от начала до практики, я считаю эту книгу лучшей написанной на данный момент, по крайней мере лучше некоторых подобных изданий.
В этой статье не рассматриваются основные принципы и основы использования Docker. Если вы хотите изучить Docker, обратитесь к книге с открытым исходным кодом выше. В этой статье будет записана практика докеризации проекта.
1. Подготовка окружающей среды
- java: JDK 1.8
- Linux: Ubuntu 17.10.1
- Docker CE: 17.12.0
2. Получение официального образа Docker
В магазине Docker найдите образ Docker, который вы хотите получить, и следуйте инструкциям, чтобы получить его.
2.1 Получить Java JRE
docker pull store/oracle/serverjre:8
2.2 Получить Java JRE
docker pull mongo
3. Создайте собственный контейнер Docker
Для создания проекта Java в виде контейнера Docker требуются следующие файлы:
- JAR-файл
- локальный файл конфигурации
- Докерфайл
Содержимое Dockerfile выглядит следующим образом:
# 基础 JRE 镜像
FROM store/oracle/serverjre:8
# 修改时区,使得容器时间为北京时间
RUN echo "Asia/Shanghai" > /etc/timezone
# 将所需项目文件复制进入容器中
WORKDIR /app
ADD ./ClusterDevicePlatform-server-1.8.9-release.jar /app
ADD ./setting /app
# 暴露容器的端口
EXPOSE 30232 8080
# 运行项目
CMD ["java", "-jar", "-Dfile.encoding=UTF-8", "ClusterDevicePlatform-server-1.8.9-release.jar"]
После записи файла Dockerfile в каталоге сервера Java будет три файла.Файл настроек и пакет Jar являются компонентами исходного проекта, которые необходимо использовать вместе.Настройка должна быть размещена в каталоге одного уровня. пакета Jar, как показано ниже:
Затем выполните следующую команду:
docker build -t ky-server .
Образ Docker для начала создания серверных приложений Java, сгенерированный образ с именем «ky-server».
После выполнения построения зеркала Docker, созданного серверным приложением Java.docker images
командой, вы можете получить все образы Docker, сохраненные на этом компьютере, как показано ниже:
4. Запустите контейнерное приложение Java-сервера.
4.1 Создание сети Docker
С улучшением сети Docker официально рекомендуется добавлять контейнеры в настраиваемую сеть Docker для подключения нескольких контейнеров.Затем создайте новую сеть Docker и назовите ее.bitky
:
docker network create -d bridge bitky
Откройте два раковины и выполните следующие две команды соответственно:
docker run --rm --name kylinked-mongo -p 27017:27017 --network bitky mongo:latest
docker run --rm --name kylinked-server -p 80:8080 -p 30232:30232 --network bitky ky-server:latest
Открыты, чтобы открыть две стойки регистрации MongoDB Shell и серверные приложения Java, порт контейнера MongoDB 27017 сопоставлен с одноименной операционной системой, порт 8080 сопоставлен с портом 80 операционной системы Java-сервера, легкий доступ через браузер. Образ MongoDB напрямую обычными средствамиpull
То есть в этой статье они повторяться не будут.
Откройте новый терминал для просмотра информации о состоянии контейнера:
docker container ls
На рисунке вы можете визуально увидеть состояние сопоставления портов и состояние работы контейнера.
4.2 Установите часовой пояс как «Пекинское время» в районе Дунба в Docker.
Часовой пояс по умолчанию в контейнере — UTC.Если вы хотите изменить часовой пояс самодельного образа Docker, вам нужно всего лишь добавить в Dockerfile следующие два предложения:
RUN echo "Asia/Shanghai" > /etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata
Следует отметить, что вышеуказанное утверждение было добавлено в Dockerfile, приведенное в этой статье, и нет необходимости повторять это утверждение.RUN dpkg-reconfigure -f noninteractive tzdata
это команда Ubuntu для изменения часового пояса. Если ваш пользовательский образ использует другой дистрибутив, то команда здесь также должна измениться. В этой статье в качестве базового образа используется JRE.После экспериментов выяснилось, что нужно выполнить только первое предложение инструкции.