В этой статье рассказывается, как развертывать распространенные приложения с помощью Docker, закрепляя знания о командах Docker, а затем рассказывается, как создать собственный образ Docker.
Tomcat
Вытяните изображение.
docker pull tomcat
Создайте контейнер.
docker run -di --name tomcat -p 8080:8080 tomcat
в контейнер.
docker exec -it tomcat /bin/bash
Проверитьwebapps
Есть ли в каталогеROOT
Project, знакомая нам страница кота 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
статья.
🤗 твой点赞
а также转发
моя самая большая поддержка.
📢 Отсканируйте код, чтобы следовать哈喽沃德先生
Каждая статья «Документ+Видео» снабжена специальным видео-пояснением, облегчающим обучение~