Оглавление
Во-первых, Docker запускает контейнер MySQL.
Четыре, расширенная производственная версия Dockerfile.
В-пятых, Docker делает кастомный Tomcat
Во-первых, Docker запускает контейнер MySQL.
Существует два основных способа управления данными в контейнерах:
Данные в контейнере Data Volumes напрямую сопоставляются с локальной средой хоста;
Контейнеры томов данных (контейнеры томов данных используют специальные контейнеры для хранения томов данных).
Установите службу MySQL, используя образ MySQL.
docker run -p 3307:3306 --name mysql1 -di -v /home/javaxl/data/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/javaxl/data/mysql/data/:/var/lib/mysql -v /home/javaxl/data/mysql/log/:/var/log -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
Создайте базу данных MySQL в инструменте подключения к виртуальной машине и запустите приведенный выше код в инструменте связи.
После выполнения попробуйте связать в базе данных
Когда возникает следующая ошибка, это может быть причиной конфликта.Есть две базы данных с одинаковым паролем, просто остановите одну из них в инструменте ссылки (команда выглядит следующим образом: docker stop имя базы данных )
Скопируйте файлы из контейнера на хост
docker cp tomcat1:/usr/local/tomcat/webapps/hello/javadxy/software/apache-tomcat-8.5.20/webapps
Копировать файлы с хоста в контейнер (и наоборот)
docker cp /javadxy/software/apache-tomcat-8.5.20/webapps tomcat1:/usr/local/tomcat/
Во-вторых, объем данных
Том данных — это специальный каталог, доступный для одного или нескольких контейнеров , который напрямую отображает каталоги операционной системы хоста в контейнеры.
Он может предоставить множество полезных функций:
1. Объемы данных можно совместно использовать и повторно использовать между контейнерами.
2. Изменения объема данных вступают в силу немедленно.
3. Обновления томов данных не повлияют на зеркалирование
4. Объем данных всегда будет существовать по умолчанию, даже если контейнер будет удален.
Смонтируйте каталог хост-компьютера с каталогом контейнера для обеспечения совместного использования данных.
docker run -di --name c2 -v /home/dxy/data/:/home/xionger/data/ centos:7
Спереди находится каталог хоста, за которым следует каталог контейнера.
Выполните указанную выше команду
Вывод: Независимо от того, создает ли хост или контейнер папки или файлы в указанном каталоге, они будут общими;
Три, контейнер объема данных
контейнер объема данных
Если пользователям необходимо совместно использовать некоторые постоянно обновляемые данные между несколькими контейнерами, проще всего использовать контейнеры томов данных.
Контейнер томов данных также является контейнером , но его цель — предоставить тома данных для монтирования других контейнеров.
docker run -di -v /home/javadxy/data/c4 --name c4 centos:7
Отмеченная часть принадлежит внутреннему контейнеру
docker run -di --volumes-from c4 --name c6 centos:7
Среди них с4 — контейнер тома данных, а с6 — обычный контейнер, между которыми с4 выступает мостом, детали контейнера мы можем просмотреть через docker inspect
докер проверяет c4
docker inspect c6 (рекомендуется скопировать этот раздел и использовать его позже)
Вы обнаружите, что монтирование каталогов c4 и c6 одинаково.
Вывод: Независимо от того, создают ли c4 и c6 папки или файлы в указанном каталоге, они будут общими;
Четыре, расширенная производственная версия Dockerfile.
Настройте Centos с помощью функций vim и ifconfig (почувствуйте значение изучения Dockerfile)
cd /javaxl/software
mkdir mydocker
vi mycentosDockerfile
построить образ
docker build -f mycentosDockerfile -t javadxy/centos:v1.0 .
Запустите контейнер из образа для тестирования
docker run -it --name mc1 javadxy/centos:v1.0/bin/bash
Редактировать содержимое в mycentosDockerfile
ОТ Centos:7
MAINTAINER javaxl "[email protected]"
RUN yum -y install vim
RUN yum install net-tools.x86_64 -y
CMD /bin/bash
В-пятых, Docker делает кастомный Tomcat
cd /javaxl/software
mkdir mydocker
vi mytomcatDockerfile ------------- создать каталог
Изменить содержимое в mytomcatDockerfile
ОТ Centos:7
MAINTAINER javaxl "[email protected]"ENV workerDir /home/javaxl/dockerfile/3 ---------------- представляет контейнер, который автоматически переходит к контейнеру
WORKDIR $workerDirADD jdk-8u151-linux-x64.tar.gz $workerDir
COPY apache-tomcat-8.5.20.tar.gz $workerDir
RUN tar -xvf apache-tomcat-8.5.20.tar.gz apache-tomcat-8.5.20ENV JAVA_HOME $workerDir/jdk1.8.0_151
ENV ПУТЬ К КЛАССУ $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV TOMCAT_HOME $workerDir/apache-tomcat-8.5.20
ENV PATH $JAVA_HOME/bin:$TOMCAT_HOME/ bin:$TOMCAT_HOME/lib:$PATH ---------配置变量EXPOSE 8080 --------- открыть порт
ENTRYPOINT ["/home/javaxl/dockerfile/3/apache-tomcat-8.5.20/bin/catalina.sh","run"]Разница между ДОБАВИТЬ и КОПИРОВАТЬ:
Добавить — добавить сжатый пакет в рабочий каталог и распаковать его.
copy только загружает сжатый пакет в рабочий каталог, не распаковывая его
Совет: После выполнения вышеуказанных шагов следующие команды не могут быть выполнены напрямую, в зависимости от того, есть ли файл jdk в текущем каталоге.
После того, как вышеперечисленное не проблема, выполните следующую команду
docker build -f mytomcatDockerfile -t javaxl/tomcat8:v1.0 .
завершите, как показано
Запустите 2 контейнера через зеркало для тестирования
docker run -di --name mt1 -P javaxl/tomcat8:v1.0
docker run -di --name mt2 -P javaxl/tomcat8:v1.0
Затем введите адрес в браузере для доступа к Tomcat.
http://192.168.195.139:49153/
http://192.168.195.139:49154/