English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Эта статья расскажет, как сделать Docker-образ для Java-web проекта из предыдущей статьи. Автор считает это очень полезным и делится этим с вами, чтобы给大家 сделать пример. Давайте вместе с автором посмотрим.
Принцип работы приложения в контейнере Docker и на физическом сервере одинаков, поэтому шаги для развертывания Java-web проекта в Docker должны быть такими:
Шаги уже都很 ясны, но для создания Docker-образа还需要 что-то еще: Dockerfile.
Dockerfile - это файл, содержащий особые команды, которые Docker может распознать. После создания файла Dockerfile можно использовать docker build для создания Docker-образа.
Начало создания Docker-образа
Структура изображена ниже:
Структура изображения Docker-образа
Создание образа
docker build -t "zsl131/web01" .
Внимание:
docker build: Создание Docker-образа
-t "zsl131/web01": Указание имени образа, здесь указано zsl131/web01; имя образа состоит из двух частей:仓库和名称,zsl131 - это имя репозитория, которое я зарегистрировал и подал заявку на hub.docker.com, а web01 - это имя самого образа
.: Обратите внимание, что перед этим есть пробел, что означает, что в текущей директории ищется файл Dockerfile для создания образа.
Ниже приведен пример Dockerfile для создания Docker-образа, чтобы лучше понять Dockerfile, можно удалить все команды из следующего файла и выполнять по одной строке: docker build -t "zsl131/web01" ., чтобы увидеть различные информации при создании образа с помощью Dockerfile:
# Используйте Centos7 в качестве базового изображения FROM centos:7 # Если не знаете, как установить JDK, можно использовать следующую команду, затем напрямую запустите: docker build #RUN yum search java | grep jdk # Установите подходящую версию JDK RUN yum install -y java-1.7.0-openjdk.x86_64 # Создайте каталог web в корневой директории RUN mkdir /web/ # Установите рабочую директорию в /web, после чего можно использовать: RUN pwd, чтобы проверить текущий путь WORKDIR /web/ # Установите wget для удобства загрузки Tomcat RUN yum install -y wget # Загрузите сжатый файл Tomcat RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-6/v6.0.48/bin/apache-tomcat-6.0.48.tar.gz # Разархивируйте файлы Tomcat RUN tar zxvf apache-tomcat-6.0.48.tar.gz # Установите инструментальную директорию WORKDIR /web/apache-tomcat-6.0.48/webapps/ROOT/ # Проверьте все файлы (каталоги) в текущем каталоге, и в этот раз будет несколько файлов, предоставленных Tomcat RUN ls -l # Удалите все файлы (каталоги) в текущем каталоге RUN rm -rf * # Удалите и снова посмотрите список, и в этот раз не будет никаких файлов RUN ls -l # Скопируйте все файлы (каталоги) из директории WebRoot в текущий каталог (webapps/ROOT), также можно использовать команду COPY ADD WebRoot . # После копирования можно еще раз увидеть список, чтобы проверить, был ли копирование успешным RUN ls -l # Установите рабочую директорию в каталог bin Tomcat, чтобы можно было запустить сервис Tomcat WORKDIR /web/apache-tomcat-6.0.48/bin/ # Объясните Tomcat порт 8080 EXPOSE 8080 # Запустите сервис Tomcat, чтобы он не был перезаписан при запуске docker run ENTRYPOINT ["./catalina.sh", "run"]
После завершения написания Dockerfile, в конечном итоге нужно скомпилировать изображение с помощью следующих команд:
docker build -t "zsl131/web01" .
Командой docker images можно проверить только что созданный образ.
Запуск контейнера
docker run -d --name web01 -p 80:8080 zsl131/web01
Объяснение:
docker run: команда для запуска контейнера
-d: Рабочий режим
--name web01: Установите имя контейнера как web01
-p 80:8080: Укажите порт, доступный для внешнего доступа, как 80, то есть когда внешний доступ к порту 80 будет маршрутизироваться на порт 8080 внутри контейнера
zsl131/web01: имя образа
Просмотр журнала запуска контейнера
docker logs web01
Объяснение:
docker logs: команда для просмотра журналов контейнера
web01: имя проверяемого контейнера, здесь это web01
Посещение
Откройте браузер и введите: http://192.168.99.100, чтобы получить доступ к Javaweb проекту, созданному MyEclipse.
Внимание: 192.168.99.100 - это IP-адрес моего хоста docker, вы можете проверить это с помощью docker-machine inspect test01, где test01 - это имя хоста docker.
Это все, что есть в этой статье, надеюсь, это поможет вам в изучении, также希望大家多多支持呐喊教程。
Объявление: контент этой статьи взяты из Интернета, авторские права принадлежат их законным владельцам, контент был предложен пользователями Интернета и загружен самостоятельно, сайт не обладает правами собственности, не underwent ручную редактуру и не несет ответственности за соответствующие юридические обязательства. Если вы обнаружите подозрительный контент на нарушение авторских прав, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для отчета и предоставьте соответствующие доказательства. Если证实, сайт немедленно удалят涉嫌侵权的内容。