[Учитель убеждений Java] Docker Knowledge Brain Map — технология контейнеризации

Docker
[Учитель убеждений Java] Docker Knowledge Brain Map — технология контейнеризации

Docker

Docker

технология контейнеризации

Во-первых, решить проблему

  1. Среды разработчика и тестировщика несовместимы, что приводит к разным результатам работы.
  2. Развертывание и миграция приложений и сред требует больших усилий.
  3. Виртуальная машина потребляет много ресурсов и имеет низкую производительность

2. История развития

  1. Виртуализация. Виртуализируйте аппаратные ресурсы (ЦП, память, жесткий диск, сеть), а затем установите операционную систему через виртуализированное пространство.
  2. Контейнерные контейнеры - пакеты приложений и среды в единый стандартный контейнер, который можно запускать в управлении контейнером в любой операционной системе - аналогично JVM

3. Основные компоненты

  1. Docker Engine (демон) — долго выполняющийся процесс

    • Взаимодействие с клиентом Docker

    • Создавайте, запускайте, распространяйте контейнеры Docker

  2. Образ Docker — шаблон только для чтения, построенный из последовательности инструкций.

    • Жизненный цикл Docker, этапы сборки и упаковки

    • Когда контейнер запускается с изображения, пишетный слой создается сверху изображения

  3. Докер-контейнер

    • Запуск, изоляция приложений

    • Жизненный цикл Docker, этапы запуска и запуска

  4. Докер-репозиторий

    • Централизованное хранение определенного типа документов изображений, разные изображения различаются тегами, аналогично проектам в Git
    • Сервер регистрации склада (Registry), отвечающий за хранение складов, аналогичный GitHub.
    • В зависимости от того, является ли зеркало общедоступным или нет, его можно разделить на общедоступный склад и частный склад.

4. Инструкции

1. Зеркало

  • fetch - вытащить докер NAME[:TAG]

    • ИМЯ реестра по умолчанию — register.hub.docker.com.
    • TAG по умолчанию последний
  • Добавить теги - Tag Docker Tag [Исходное имя изображения: Tag] [Наименование целевого изображения: Tag] - будут два зеркальных сообщения, но они принадлежат к тому же изображению

  • Подробнее Подробнее - Docker Ispect Название [: TAG]

  • Просмотр информации о слое — идентификатор изображения истории докеров

  • Посмотреть всю информацию об образе — образы докеров — использовать-fфильтровать информацию

  • search - имя поиска докера

  • удалять

    • docker rmi NAME[:TAG]

    • docker rmi IMAGE_ID

      Если в контейнере запущен образ, его нельзя удалить, можно использовать -f для принудительного удаления, но это не рекомендуется

  • Загрузить — docker push NAME[:TAG] — загрузить в официальный репозиторий Docker Hub по умолчанию (требуется вход в систему)

  • Создано с помощью DockerFile — docker build [-f путь к файлу Docker] [-t имя изображения:тег] .

2. Контейнер

  • создать - докер создать ИМЯ[:ТЕГ]

    • -i - интерактивный режим

    • -t - псевдотерминал

    • -d - работать в фоновом режиме

    • -e ключ=значение - указать переменную окружения

    • -m размер памяти - максимальное использование памяти - b, k, m, g

    • -v Каталог Linux:каталог Docker[:ro] — сопоставление каталога Linux и тома данных контейнера

      Каталог Linux должен существовать

    • -p port:port — сопоставить порты Linux с портами Docker

    • --name имя контейнера - указать имя контейнера

    • --rm - автоматически удалил контейнер после выхода контейнера

    • --network

      • bridge - [по умолчанию] мост, обнаружение переадресации на основе MAC-адреса (маршрутизатор основан на обнаружении переадресации IP)
      • хост - использовать IP-адрес хоста - больше нельзя использовать-p
      • оверлей — соединяет несколько движков Docker вместе, чтобы кластеры могли взаимодействовать друг с другом.
      • macvlan — назначать MAC-адреса контейнерам, отображающимся как физические устройства в сети.
      • none - отключить сеть
    • --tmpfs — тома данных монтируются только в память, а не в постоянные

  • start — идентификатор стартового контейнера докера

  • Посмотреть статус

    • Запуск контейнера — docker ps
    • Все контейнеры - docker ps -a
  • проверить детали

    • докер проверяет идентификатор контейнера
    • идентификатор контейнера статистики докеров
  • Создайте и запустите docker run NAME[:TAG]

    Эквивалент создания + запуск

    Вы можете использовать параметр options для создания

  • остановка

    • docker stop id контейнера -t время — [по умолчанию] 10 секунд
    • докер убить контейнер
  • перезапуск — идентификатор контейнера перезапуска докера

  • введите - docker exec -it идентификатор контейнера /bin/bash

  • Удалить — идентификатор контейнера docker rm

    Если контейнер запущен, его нельзя удалить, вы можете использовать -f для принудительного удаления

  • pause — идентификатор контейнера паузы в докере

  • возобновление паузы - идентификатор контейнера приостановки докера

3. Склад

  • Логин - docker login -u имя пользователя -p пароль
  • logout - выход из докера
  • Документ аутентификации — скопируйте содержимое документа в Linux, чтобы войти в /root/.docker/config.json без пароля.

4. DockerFile

Состоит из построчных операторов команд

[Цель] Создание имиджа

  • FROM NAME[:TAG] – на основе изображения
  • MAINTAINER Name Mailbox — имя сопровождающего, почтовый ящик
  • COPY Путь Linux Путь Docker — копирование собственных ресурсов в контейнер Docker — поддержка подстановочных знаков, обычный
  • Запустите команду команды - запустить команду
  • ADD Path 1 Docker Path — получить ресурсы (удаленно) в контейнеры Docker
    • [Рекомендуется] Используйте RUN wget для удаленных ресурсов.
    • [Рекомендуется] Использовать COPY для нативных ресурсов
  • Команда CMD — команда для запуска после запуска Docker — только одна
  • Команда ENTRYPOINT — аналогична команде CMD.
  • ENV key=value - установить переменную окружения
  • VOLUME Docker path — объявляет путь в Docker-контейнере как анонимный том.
  • WORKDIR Docker path — сменить каталог
  • EXPOSE порт 1 порт 2 - установить порт прослушивания

5. Объем данных

  • create - том докера создать имя тома
  • Список просмотра - том докера ls
  • Просмотр сообщений - проверка тома докера имя_тома
  • удалить - том докера rm имя_тома

6. Compose

[Цель] Одновременный запуск нескольких контейнеров Docker с разными образами

Заказ

  • запустить (сборка + запуск) - docker-compose up -d
  • Просмотр — docker-compose ps
  • Просмотр журналов — журналы создания докеров
  • Привязка порта службы — порт имени службы порта для составления докеров
  • Пересоберите сервис — сборка docker-compose
  • Start — запуск docker-compose [название службы]
  • stop - docker-compose stop [название службы]
  • удалить - docker-compose rm [имя службы]
  • остановить и удалить - docker-compose down [имя службы] [-v]
  • Команда запуска — команда docker-compose run servicename

настроить

Имя файла по умолчанию — docker-compose.yml.

  • версия - 3.0+ требуется для интеграции с Swarm
  • сервисы - определить сервисы
  • изображение - использовать изображение
  • build — собрать образ с помощью DockerFile
  • порты - установить сопоставление портов
  • volumes - контейнер тома отображаемых данных
  • команда — переопределяет команду по умолчанию для запуска после запуска контейнера.
  • depend_on — установить порядок запуска службы
  • среда - установить переменные среды
  • network_mode установить режим сети
version: '2.0' # 版本2.0
services: # 定义服务
  mysql: # 服务名称
    image: mysql:5.7 # 使用镜像
    ports: #端口映射
      - 3306:3306
    volumes: # 卷映射
      - /mydata/mysql/log:/var/log/mysql
      - /mydata/mysql/data:/var/lib/mysql
      - /mydata/mysql/conf:/etc/mysql
    environment:
      MYSQL_ROOT_PASSWORD: myPassword
  redis:
     image: redis:6.0
     ports:
       - 6379:6379
  halo:
    image: tony60107/halo:v1
    ports:
      - 8090:8090

7. Swarm

[Цель] Изменить конфигурацию кластера контейнера Docker без ручного перезапуска.

  • Просмотр состояния кластера — информация о докере
  • Просмотр информации об узле — docker node ls
  • Посмотреть информацию об услуге
    • Все услуги - docker service ls
    • Служба запущена — служба докеров ps [имя службы]
  • Просмотр сообщений с токенами в диспетчере — менеджер токенов присоединения к рою докеров
  • Добавить рабочий узел в кластер — токен присоединения к рою докеров
  • Добавьте узел менеджера в кластер — токен менеджера присоединения к токену docker swarm
  • Выгнать текущую ноду из кластера — docker swarm leave --force
  • Опубликовать службу в кластер - Docker Service Создать имя сервиса
    • -p порт:порт — сопоставление портов
    • --replicas instances - общее количество запущенных экземпляров
    • --name name - имя пользовательского сервиса
  • Остановить и удалить службу — docker service rm [название службы]
  • Служба масштабирования — имя службы масштабирования службы докеров = количество экземпляров
  • служба обновления - свойство имени свойства обновления службы докеров