Распространенное развертывание приложений Docker

Docker
Распространенное развертывание приложений Docker

В этой статье рассказывается, как развертывать распространенные приложения с помощью Docker, закрепляя знания о командах Docker, а затем рассказывается, как создать собственный образ Docker.

Tomcat

Вытяните изображение.

docker pull tomcat

Создайте контейнер.

docker run -di --name tomcat -p 8080:8080 tomcat

в контейнер.

docker exec -it tomcat /bin/bash

ПроверитьwebappsЕсть ли в каталогеROOTProject, знакомая нам страница кота Tomcat, как правило, находится в этом проекте.

Как показано на рисунке выше, каталог пуст.На самом деле, Tomcat по умолчанию использует более новую версию.ROOTэлемент размещенwebapps.dist, если вы действительно хотите посетитьhttp://192.168.10.10:8080/см. кота Tomcat, скопируйте его вwebappsВот и все.

Доступ:http://192.168.10.10:8080/Вы можете увидеть знакомые лица.

Nginx

Вытяните изображение.

docker pull nginx

Создайте контейнер Nginx.

docker run -di --name nginx -p 80:80 nginx

Скопируйте файл конфигурации из контейнера в указанный каталог (создайте каталог заранее).

# 创建目录
mkdir -p /mydata/docker_nginx
# 将容器内的配置文件拷贝到指定目录
docker cp nginx:/etc/nginx /mydata/docker_nginx/

Переименовать хост/mydata/docker_nginx/nginxза/mydata/docker_nginx/conf

mv /mydata/docker_nginx/nginx/ /mydata/docker_nginx/conf

Завершите работу и удалите контейнер (операции монтирования каталога можно задать только при создании контейнера).

docker stop nginx
docker rm nginx

Создайте контейнер Nginx и поместите/etc/nginxкаталог и хост/mydata/docker_nginx/confкаталог для монтирования.

docker run -di --name nginx -p 80:80 -v /mydata/docker_nginx/conf:/etc/nginx nginx

Доступ к хосту:http://192.168.10.10:80/Результат выглядит следующим образом:

MySQL

Вытяните изображение.

docker pull mysql:8.0.21

Создайте контейнер.

docker run -di --name mysql8 -p 3306:3306 -v /mydata/docker_mysql/conf:/etc/mysql/conf.d -v /mydata/docker_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.21
  • -p: Представляет сопоставление портов в следующем формате: Порт сопоставления хоста: рабочий порт контейнера.
  • -e: представляет добавление переменных средыMYSQL_ROOT_PASSWORDявляется паролем для входа в систему пользователя root.

При подключении к MySQL в контейнере вам нужно только подключиться к IP-адресу хоста + указанному сопоставленному порту.

Также можно войти в контейнер и использовать команду MySQL, чтобы открыть клиент.

# 进入容器
docker exec -it mysql8 /bin/bash
# 使用 MySQL 命令打开客户端
mysql -uroot -p1234 --default-character-set=utf8

Redis

Вытяните изображение.

docker pull redis

Создайте контейнер.

docker run -di --name redis -p 6379:6379 redis

При подключении к Redis в контейнере вам нужно только подключиться к IP-адресу хоста + указанному сопоставленному порту.

MongoDB

Вытяните изображение.

docker pull mongo

Создайте контейнер.

docker run -di --name mongo -p 27017:27017 mongo

При подключении к MongoDB в контейнере вам нужно только подключиться к IP-адресу хоста + указанному сопоставленному порту.

Elasticsearch

Вытяните изображение.

docker pull elasticsearch:7.8.1

Создайте контейнер Для удобства демонстрации измените объем памяти, занимаемый запуском ES.

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -e "discovery.type=single-node" -di --name es -p 9200:9200 -p 9300:9300 -p 5601:5601 -v /mydata/docker_es/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.8.1

Установите китайский токенизатор.

# 进入容器
docker exec -it es /bin/bash
# 安装中文分词器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.1/elasticsearch-analysis-ik-7.8.1.zip
# 重启 es
docker restart es

Доступ:http://192.168.10.10:9200/Результат выглядит следующим образом:

Установите головной плагин

Вытяните изображение.

docker pull mobz/elasticsearch-head:5

Создайте контейнер.

docker run -di --name es-head -p 9100:9100 mobz/elasticsearch-head:5

Откройте страницу elasticsearch-head в браузере и введите адрес Elasticsearch.

Тут будет проблема междоменного отказа в доступе.Входим в контейнер elasticsearch и модифицируем конфигурационный файл.elasticsearch.yml.

# 进入容器
docker exec -it 容器ID或名称 /bin/bash
# 修改配置文件
vi config/elasticsearch.yml

существуетelasticsearch.ymlДобавьте следующее в .

# 跨域请求配置(为了让类似 head 的第三方插件可以请求 es)
http.cors.enabled: true
http.cors.allow-origin: "*"

Перезапустите контейнер.

docker restart es

Solr

Вытяните изображение.

docker pull solr

Создайте контейнер.

docker run -di --name=solr -p 8983:8983 solr

Доступ:http://192.168.10.10:8983/solr/#/Результат выглядит следующим образом:

RabbitMQ

Вытяните изображение.

docker pull rabbitmq

Создайте контейнер.

docker run -di --name rabbitmq -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq

Войдите в контейнер и включите функцию управления.

# 进入容器
docker exec -it rabbitmq /bin/bash
# 开启 RabbitMQ 管理功能
rabbitmq-plugins enable rabbitmq_management

Доступ:http://192.168.10.10:15672/использоватьguestПароль учетной записи входа, результат такой:

Упражнение по развертыванию приложения уже здесь, а затем пришло время научиться создавать собственный образ Docker.

Этот документ принимает知识共享「署名-非商业性使用-禁止演绎 4.0 国际」许可协议.

Каждый может пройти分类увидеть больше оDockerстатья.

🤗 твой点赞а также转发моя самая большая поддержка.

📢 Отсканируйте код, чтобы следовать哈喽沃德先生Каждая статья «Документ+Видео» снабжена специальным видео-пояснением, облегчающим обучение~