«Урок минимализма Docker» -- Контейнер Docker -- Создание и использование контейнера Docker
«Урок минимализма Docker» -- Контейнер Docker -- Создание и использование контейнера Docker
1. Создайте контейнер Docker.
1.1 Создайте контейнер, используя существующий образ

При создании контейнера с использованием существующего образа обычно выполняются следующие шаги:

Получить изображение:первый,Нужно начать сDocker Hubилидругойзеркало На складе есть то, что вам нужноиззеркало。Можетиспользоватьdocker pullЗаказ приходит Получить изображение, грамматика следующая:

Язык кода:javascript
копировать
docker pull <зеркалоимя>:<Этикетка>

в,<зеркалоимя>дачтобы получитьиззеркалоизимя,<Этикетка>да Необязательныйиз Версияилиидентификатор。

Создать контейнер:один разполучите то, что вам нужно иззеркало,Сразу Можетиспользоватьdocker runЗаказ приходит Создать контейнер。в целом,При использовании Запустить контейнер вы можете указать некоторые параметры для настройки поведения контейнера.,Напримерсопоставление портов、данные Крепление тома и т.д.。базовыйиз Синтаксис следующий:

Язык кода:javascript
копировать
docker run [параметры] <зеркалоимя>:<Этикетка>

в,[параметры]да Необязательныйизпараметр,для конфигурацииконтейнериз Режим работы。<зеркалоимя>:<Этикетка>Указано дляиспользоватьиззеркалои Версияили Этикетка。

Пример:Ниже приводится простой Пример,Показывает, как создать работающий изконтейнер из существующего изнгинксзеркало.,и будетконтейнериз80сопоставление портовразместитьиз8080порт:

Язык кода:javascript
копировать
docker run -d -p 8080:80 nginx

существоватьэтот Примерсередина,-dпараметрвыражатьв фоновом режиме Запустить контейнер,-p 8080:80Указатьконтейнериз80сопоставление портовразместитьиз8080порт,nginxдахотетьиспользоватьиззеркалоимя。

Посмотреть статус контейнера:Создать контейнерназад,Можетиспользоватьdocker psкоманда для просмотра текущегосуществоватьбегатьизконтейнерсписок,Чтобы убедиться, что контейнер успешно создан и работает. Чтобы просмотреть весь контейнер,Включает снятый с производства изконтейнер,Можетдобавить в-aпараметр。

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

1.2 Пользовательское изображение

Пользовательские образы создаются путем написания файла Dockerfile и использования команды сборки Docker. Вот основные шаги для создания собственного изображения:

писать Dockerfile: Dockerfile Представляет собой текстовый файл, содержащий инструкции по созданию изображения. существовать Dockerfile , вы можете определить операции и настройки, необходимые для запуска из базового образа, такие как установка пакетов, установка переменных среды, добавление файлов и т. д. Вот простой пример Dockerfile:

Язык кода:javascript
копировать
# использоватьчиновникиз Node.js зеркало как основа зеркала
FROM node:14

# Установить рабочий каталог
WORKDIR /app

# Изменить текущий каталог документкопирования на рабочий каталог.
COPY . .

# Установить зависимости приложения
RUN npm install

# Выставить приложение из портов
EXPOSE 3000

# Определите контейнер для запуска команды из при запуске
CMD ["node", "app.js"]

Создать образ: существоватьписатьхороший Dockerfile После этого используйте docker build Команда для создания образа. В команде нужно указать Dockerfile Каталог, в котором оно находится (обычно текущий каталог), а также имя и необязательная метка для имени изображения. Например:

Язык кода:javascript
копировать
docker build -t my-custom-image .

существоватьэтот Примерсередина,-t параметриспользуется дляобозначениезеркалоизимя(my-custom-image),. выражать Dockerfile Каталог, в котором он находится, является текущим каталогом.

Запустить контейнер: После успешной сборки вы можете использовать docker run команда для запуска вновь созданного образа и создания экземпляра контейнера. Например:

Язык кода:javascript
копировать
docker run -d -p 3000:3000 my-custom-image

Эта команда запустит контейнер в фоновом режиме и сопоставит порт 3000 контейнера с портом 3000 хоста.

Выполнив описанные выше шаги, вы можете создать собственный образ Docker и запустить приложение в контейнере. В реальных приложениях вам может потребоваться настроить Dockerfile более индивидуально в соответствии с требованиями вашего приложения.

2. Управление контейнерами Docker
2.1 Запуск и остановка контейнеров

Запуск и остановка контейнеров — распространенные операции при запуске контейнеров с помощью Docker. Вот основные шаги по запуску и остановке контейнера:

Запустить контейнер

  • Запустить существующий контейнер:Если вы уже создаликонтейнерно еще нетзапускать,Можетиспользовать docker start команда для его запуска. Синтаксис следующий:
Язык кода:javascript
копировать
docker start <контейнерID или контейнеримя>
  • Создать и запустить новый контейнер:еслихотетьсоздаватьизапускатьновыйизконтейнер,Можетиспользовать docker run Заказ.Например:
Язык кода:javascript
копировать
docker run -d <зеркалоимя>

Это запускает новый контейнер в фоновом режиме.

Остановить контейнер

  • Прекратить запуск контейнеров:есликонтейнертолькосуществоватьбегать,Можетиспользовать docker stop команду остановить это. Синтаксис следующий:
Язык кода:javascript
копировать
docker stop <контейнерID или контейнеримя>

Это отправляет сигнал остановки контейнеру, заставляя его прекратить работу.

  • сила Остановить контейнер:существоватьв некоторых случаях,может потребоватьсяхотетьсила Остановить контейнер, хотя он и не реагирует на обычные стоп-сигналы. можно использовать docker kill Заказсила Остановить контейнер。Например:
Язык кода:javascript
копировать
docker kill <контейнерID или контейнеримя>

Пример Следующий даа Пример демонстрирует, как начать и Остановить. контейнер:

Запустить контейнер

Язык кода:javascript
копировать
docker start my-container

Остановить контейнер

Язык кода:javascript
копировать
docker stop my-container

Пожалуйста, обязательно замените <контейнерID или контейнеримя> для настоящего контейнера ID или Имя. использовать Эти команды вы можете легко контролировать Docker Запуск и остановка контейнеров.

2.2 Просмотр статуса контейнера

Чтобы просмотреть статус контейнера, вы можете использовать docker ps Заказ. Эта команда используется для вывода списка запущенных в данный момент контейнеров. Если вы хотите просмотреть все контейнеры, включая остановленные, вы можете использовать docker ps -a Заказ.

Просмотр запущенных контейнеров Используйте следующую команду, чтобы просмотреть список запущенных в данный момент контейнеров:

Язык кода:javascript
копировать
docker ps

Появится список, содержащий некоторую ключевую информацию о контейнере, такую ​​как идентификатор контейнера, имя изображения, время создания, статус и т. д.

Просмотр всех контейнеров (включая остановленные контейнеры) Если вы хотите просмотреть все контейнеры, включая остановленные, вы можете использовать -a параметр:

Язык кода:javascript
копировать
docker ps -a

Это покажет все контейнеры независимо от того, работает ли их статус или остановлен.

Пример Следующий пример:

Язык кода:javascript
копировать
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS      NAMES
abcdef123456   nginx:latest   "nginx -g 'daemon of…"   5 minutes ago   Up 5 minutes   80/tcp     my-nginx-container
123456abcdef   mysql:latest   "docker-entrypoint.s…"   2 hours ago     Up 2 hours     3306/tcp   my-mysql-container

существоватьэтот Примерсередина,docker ps Команда показывает два контейнера, один из них запущен. Nginx контейнер,другой работает MySQL контейнер. В строке состояния контейнера отобразится “Up” выражатьконтейнертолькосуществоватьбегать。

2.3 Войдите в контейнер

Чтобы попасть в работающий контейнер и взаимодействовать с ним, вы можете использовать docker exec Заказ Эта команда позволяет выполнить определенный из Заказ в рамках существующегоконтейнера.

Введите контейнер в интерактивном режиме Shell Чтобы войти в интерактивный контейнер Shell, вы можете использовать следующие команды:

Язык кода:javascript
копировать
docker exec -it <контейнерID или контейнеримя> /bin/bash

существуют в этой команде,-it параметр используется для указания использования интерактивного терминала, а /bin/bash Он должен выполняться внутри контейнера Оболочка. Вы также можете использовать другие Оболочка, например /bin/sh или /bin/zsh

Пример Например, чтобы ввести файл с именем my-container Контейнер, вы можете запустить следующую команду:

Язык кода:javascript
копировать
docker exec -it my-container /bin/bash

Это запустит интерактивную оболочку Bash внутри контейнера и поместит вас в файловую систему контейнера, что позволит вам выполнять команды и просматривать содержимое контейнера.

На что следует обратить внимание Пожалуйста, обязательно замените <контейнерID или контейнеримя> для фактического контейнера, в который вы хотите войти ID или Имя. Кроме того, для входа в изконтейнер необходимо быть запущенным из штата.

использовать docker exec Вход в контейнер — очень полезная функция, позволяющая проводить отладку, просматривать логи, выполнять команды и т. д. внутри контейнера.

2.4 Удалить контейнер

Чтобы удалить контейнер, вы можете использовать docker rm Заказ.Следующим образом можно удалить базовую грамматику контейнера:

Язык кода:javascript
копировать
docker rm <контейнерID или контейнеримя>

Эта команда удалит указанный контейнер. Вы также можете удалить несколько контейнеров одновременно, просто укажите несколько контейнеров в команде ID илиимя。

Пример Например, чтобы удалить файл с именем my-container Контейнер, вы можете запустить следующую команду:

Язык кода:javascript
копировать
docker rm my-container

Удалить все контейнеры Если вы хотите удалить все остановленные изконтейнеры, вы можете объединить использование docker ps -a команда и awk Заказ.Например, чтобы удалить все остановленные Контейнеры, вы можете запустить следующую команду:

Язык кода:javascript
копировать
docker rm $(docker ps -a -q)

существуют в этой команде,docker ps -a -q Используется для вывода списка всех контейнеров ID, а затем пройти $(...) поместите это ID перешел к docker rm команда для удаления этих контейнеров.

На что следует обратить внимание

  • существуют Перед удалением контейнеров убедитесь, что они вам больше не нужны. Удаление контейнера приведет к потере его внутренних данных, если только вы не существуете Создать. контейнер timeиспользует том данных для сохранения.
  • Если вы хотите убрать положительный запуск изконтейнера, вы можете добавить -f параметр Приходитьсилаудалитьконтейнер,Например:docker rm -f <контейнерID или контейнеримя>
3. Межконтейнерная связь и управление данными.
3.1 Контейнерная сеть

Контейнерная сеть — это Docker Важная концепция Python, позволяющая контейнерам взаимодействовать друг с другом и с внешним миром. В контейнерной сети каждый контейнер имеет свой собственный IP адрес, доступ к которому можно получить через этот IP Адрес и другие хосты контейнерили для связи. Ниже приведены некоторые ключевые концепции и характеристики контейнерных сетей (подробности о сети будут показаны в последующих главах):

  1. Сетевой режим по умолчанию При создании нового изконтейнера Docker Контейнеру назначается исходное значение по умолчанию, обычно для сети моста (bridge сеть). В существующих мостовых сетях каждому контейнеру присваивается уникальный IP Адрес, контейнер может находиться между этими IP адрес для связи. Кроме того, Докер Также предусмотрен режим, называемый режимом хоста (host mode) режим иссеть, позволяющий хостам контейнеров совместно использовать пространство имен сети.
  2. Пользовательская сеть В дополнение к режиму иссети по умолчанию, Docker Также позволяет пользователям создавать собственные сети для удовлетворения конкретных потребностей. Пользовательская позволяет группе контейнерсуществовать находиться в одной сети, чтобы они могли обращаться друг к другу по имениконтейнера, не полагаясь на IP адрес.также,Пользовательская сеть также поддерживает подключение к внешней сети.,Позволяет внешним службам взаимодействовать.
  3. сетевой драйвер Docker Предлагает различные сети драйвер(network драйвер), используемый для поддержки различных типов изсетей. В дополнение к дефолту из мостовой сети Помимо драйвера, есть еще покрытие сети (оверлей network)、macvlan сеть(macvlan сеть) и т. д. Каждый вид драйвер имеет свои особенности и применимые сценарии, например, сеть покрытия подходит для межхостовой связи, и macvlan network позволяет контейнеру напрямую привязываться к физическому сетевому интерфейсу.
  4. внешнее соединение контейнер Можетпроходитьвнешнее соединение(external возможность подключения) и общаться с внешним миром. Это означает, что контейнер может подключаться к сети хостов, внешним сервисам или другой сети для доступа к внешним ресурсам или предоставляемым услугам. внешнее соединениев целомнуждатьсяхотетьиспользоватьсопоставление портовиликонтейнерная сетьиз Специальная конфигурация для достижения.
  5. Связь между контейнерами контейнермеждуизкоммуникацияв целомпроходитьконтейнер IP адресиликонтейнеримяруководить。существоватьтакой жесетьсерединаизконтейнер Можетпрямойпроходить IP адресиликонтейнеримяруководитькоммуникация,Никакой дополнительной настройки не требуется. Если контейнер находится в другом изсети,则может потребоватьсяхотетьпроходитьсопоставление портовилидругойсетьспособ подключения для связи。

Контейнерная сеть — это Docker Важная часть контейнера, она обеспечивает контейнеру возможность взаимодействовать и подключаться к внешнему миру. Понимая базовые концепции и характеристики контейнерных сетей, вы сможете лучше понимать и управлять сетевым развертыванием контейнерных приложений.

3.2 Общий объем данных

Общий объем данных Docker Механизм реализации совместного использования контейнера и данных. том данных да Специальный каталог, который может обходить систему контейнериздокументов и к которому может получить доступ один или несколько общих ресурсов контейнера. Общий том данных позволяет нескольким контейнерам читать и записывать данные в один и тот же том данных, тем самым обеспечивая совместное и постоянное хранилище данных. Ниже приведены основные функции и использование общих томов данных (подробное объяснение томов будет расширено в последующих главах):

Создать том данных существовать Docker Создать можно двумя способами. том данных:

использовать docker volume create Команда для создания анонимного тома данных

Язык кода:javascript
копировать
docker volume create myvolume

Запустить контейнер при создании именованного тома данных путем указания точки монтирования

Язык кода:javascript
копировать
docker run -v myvolume:/path/to/mount ...

Подключите том данных к контейнеру хотетьсуществоватьконтейнерсерединаиспользоватьданныерулон,нуждатьсяхотетьсуществовать Запустить контейнер смонтирует том данных по пути, указанному в контейнериз. можно использовать -v или --mount Параметры для указания точки монтирования.

Общий объем данных с несколькими контейнерами Несколько контейнеров могут выполнять операции чтения и записи на одном и том же томе данных, тем самым обеспечивая совместное использование данных. Просто существовать Запустить Контейнер просто монтируют одинаковые изданные тома в разные изконтейнеры.

Управление жизненным циклом тома данных данныерулон Можетсуществоватьконтейнериз Постоянное хранение в течение жизненного цикладанные,Даже если контейнер удален,Объем данных в изданных остатках. Вы можете удалить тома данных или сохранить их для последующего использования.

использовать Случай Общие тома данных подходят для многих сценариев, в том числе:

  • Контейнер библиотеки данных: несколько контейнеров библиотек данных могут использовать один и тот же том данных для постоянного хранения данных.
  • Совместное использование документов: контейнер нескольких приложений может использовать один и тот же объем данных для синхронизации общего доступа к документам.
  • Сбор журналов: несколько контейнеров журналов могут записывать данные журналов в один и тот же том данных.,Затем журналы собираются и обрабатываются в другом контейнере.

Общий объем данных Docker Это важный механизм реализации совместного использования данных и постоянного хранения между контейнерами. Совместное использование томов данных позволяет более гибко разрабатывать контейнерные приложения и управлять ими, а также обеспечивать постоянное хранение и совместное использование данных.

3.3 Сетевое подключение

существовать Docker сетевые соединения между контейнерами могут быть реализованы различными способами:

  1. Мостовая сеть по умолчанию По умолчанию Докер использоватьперекрытиесеть(bridge сеть) для подключения контейнера. В существующих мостовых сетях каждому контейнеру будет присвоен уникальный IP адрес и контейнер могут содержать эти IP адрес для связи. С помощью моста вы можете устанавливать сетевые соединения между несколькими контейнерами, работающими на одном хосте.
  2. Пользовательская сеть В дополнение к сети моста по умолчанию, Docker Также позволяет пользователям создавать собственные сети для удовлетворения конкретных потребностей. Пользовательская позволяет группе контейнерсуществовать находиться в одной сети, чтобы они могли обращаться друг к другу по имениконтейнера, не полагаясь на IP адрес.проходить Пользовательская сеть,Вы сможете более гибко управлять связями между контейнеризсетами.,И реализовать изоляцию и связь между разными контейнерами.
  3. внешнее соединение контейнер Можетпроходитьвнешнее соединение(external возможность подключения) и общаться с внешним миром. внешнее Соединение обычно дает возможность подключенияконтейнера, используя сопоставление портов или специальную конфигурацию сети для достижения из. действоватьвнешнее соединение,Вы можете разрешить сети контейнерихост, внешним сервисам или другой сети взаимодействовать.,Предоставлять услуги для доступа к внешним ресурсам.
  4. Межконтейнерная связь существоватьтакой жесетьсерединаизконтейнер Можетпрямойпроходить IP Адрес или имяконтейнера для переписки. существуют по умолчанию в сети моста, каждому контейнеру присваивается уникальный IP адрес, чтобы его можно было передать IP адресруководитькоммуникация。существовать Пользовательская В сети контейнеры могут посещать друг друга под именем «проводконтейнер».
  5. Межхостовая связь Если контейнер развернут на другом хосте, вы можете использовать Docker Обеспечить изоверлейсет (оверлей сети) для достижения Межхостовой связь. Оверлейная сеть позволяет нескольким хостам взаимодействовать внутри одной сети, что позволяет использовать межхостовую из Межконтейнерную сеть. связь。

проходитьвыше пути,ты Можетсуществовать Docker Реализуйте гибкие сетевые соединения между контейнерами и выбирайте подходящие сетевые конфигурации в соответствии с потребностями для обеспечения связи и изоляции между контейнерами.

4. Развертывание и расширение Docker-контейнеров.
4.1 Docker Compose

Docker Compose Это инструмент для определения и запуска нескольких контейнеров. Docker Инструменты приложения. через простой YAML С помощью документа вы можете настраивать приложения из служб, сетевых томов и т. д., а также запускать, останавливать и управлять всем приложением с помощью одной команды. Следующие да Docker Compose Основные возможности и использование:

Функции:

  • декларативный синтаксис:использовать YAML документ для определения приложений из сервисов, сетевых томов и т. д., делая настройку более краткой и понятной.
  • Многоконтейнерное приложение:Поддержка несколькихконтейнеркомпозицияизприложение,Вы можете определять зависимости и соединения между несколькими службами и управлять ими.
  • Оркестровка контейнеров:автоматизацияконтейнеризсоздавать、запускать、останавливатьсяиудалить,упрощенный Оркестровка управление контейнерами из процесса.
  • Кроссплатформенная поддержка:Docker Compose Можетбегатьсуществовать Windows、macOS и Linux и других операционных системах, а также поддерживает распространенную из Оркестровку. контейнеров Функция。

использование:

  • писать Docker Compose документ:создаватьодинназванный docker-compose.yml из YAML документ и определить приложение из служб, сети, томов и другую информацию о конфигурации в существующем документе.
  • Определение услуг:существовать Docker Compose документсерединаиспользовать services Ключевые слова Приходитьопределениеприложениеиз Различные услуги。Каждая услуга включает в себяконтейнериззеркало、сопоставление портов、Переменные среды и другие конфигурации.
  • Сборка и запуск приложения:использовать docker-compose up команда для сборки и запуска всего приложения. Докер Compose буду читать docker-compose.yml документ и создайте и Запустить на основе конфигурации из в документе. контейнер。
  • Управление приложениями:один как только приложение запустится успешно, вы можете использовать docker-compose Заказать в Управление приложениямиизсостояние,включатьзапускать、останавливаться、Перезапуск и удаление операций.
  • Расширяйте и настраивайте:Docker Compose Позволяет добавлять новые услуги, изменять конфигурации и т. д. Расширяйте и настраивайте приложения для удовлетворения конкретных потребностей.

Пример Docker Compose документ: Ниже приводится простой Docker Compose документ Пример:

Язык кода:javascript
копировать
version: '3'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
    networks:
      - mynetwork

networks:
  mynetwork:
    driver: bridge

существования. В этом примере мы определяем именованный web изService, ituse Nginx зеркало и перенести хост 8080 Сопоставление портов с контейнером 80 порт. В то же время мы также определили том данных для хранения данных на хосте. html Каталог монтируется в контейнер /usr/share/nginx/html Оглавление. Наконец, мы определяем пользовательскую сеть mynetwork,Используется для подключения приложений и различных сервисов.

С помощью Docker Compose вы можете легко управлять развертыванием и работой многоконтейнерных приложений Docker, упрощая процесс оркестрации и управления контейнерами, а также повышая эффективность разработки и развертывания.

4.2. Использование Docker Swarm для развертывания кластера

Docker Swarm да Docker Официальный инструмент оркестрации контейнеров, который позволяет объединять несколько Docker Хосты объединяются в виртуальный кластер для облегчения развертывания, управления и расширения приложений.Вниздаиспользовать Docker Swarm Основные шаги по развертыванию кластера:

инициализация Swarm Прежде всего, существование Docker на хостеинициализация Swarm, этот хост будет действовать как Swarm Кластер из узла управления. использовать docker swarm init Заказ приходитинициализация Рой. Например:

Язык кода:javascript
копировать
docker swarm init --advertise-addr <Узел управленияизIPадрес>

существуют в этой команде,--advertise-addr Параметры, используемые для указания узла управления IP адрес.

Добавить другие узлы Swarm Далее добавьте другие Docker Хост присоединяется Swarm В качестве рабочего узла в кластере. существуют, выполняются на каждом добавляемом узле из docker swarm join команда для подключения к Swarm кластер. Например:

Язык кода:javascript
копировать
docker swarm join --token <SWMTKN> <Узел управленияизIPадрес>:<порт>

существуют в этой команде,<SWMTKN> даинициализация Swarm генерируется, когда token,<Узел управленияизIPадрес> да Узел управленияиз IP адрес,<порт> да Swarm Порт плоскости управления, по умолчанию: 2377。

Служба развертывания один раз Swarm Кластер установлен, можно использовать docker service Заказ приходит Служба развертывания. Сервис-даконтейнер из логической единицы, состоящей из одного или нескольких контейнеров и основанной на указанном количестве существующих реплик. Swarm Запуск в кластере. Например:

Язык кода:javascript
копировать
docker service create --name my-web-app --replicas 3 -p 8080:80 my-web-image

Эта команда создаст файл с именем my-web-app услуга, которую предоставляет my-web-image зеркало построить и запустить в существующем кластере 3 копии.

Расширенные услуги использовать docker service scale Команда может расширять и уменьшать количество копий сервиса. Например:

Язык кода:javascript
копировать
docker service scale my-web-app=5

Эта команда добавит my-web-app Количество реплик сервиса достигает 5 индивидуальный.

Управленческие услуги Вы можете использовать docker service ls команда для вывода списка Swarm Запустите все службы в кластере, используйте docker service ps <Служитьимя> Команда для просмотра конкретной службы по состоянию задачи и ее использования docker service rm <Служитьимя> Команда удаления службы.

Управление кластером Можетиспользовать docker node ls команда для вывода списка Swarm Все узлы в кластере, использовать docker node inspect <узелимя> Команда для просмотра сведений об определенном узле и использования docker node rm <узелимя> Команда для удаления узла из кластера.

На что следует обратить внимание

  • Перед развертыванием существования убедитесь, что оно установлено на всех узлах. Docker Движок и версии совместимы.
  • использовать Docker Swarm При развертывании кластерных приложений рекомендуется использовать Docker Теги для ограничения развертывания контейнера на определенных узлах для достижения более гибкого управления ресурсами.
  • использовать Docker Swarm Развертывать стандартизированные приложения и управлять ими легко, но в производственной среде по-прежнему необходимо учитывать такие вопросы, как высокая доступность, безопасность и мониторинг.
4.3 Интеграция Kubernetes и Docker-контейнеров

Kubernetes (часто сокращается до K8s) в открытом исходном коде из Оркестровки платформа контейнеров для автоматического развертывания, расширения и управления контейнерами. Хотя Kubernetes Управлять можно любым контейнерным приложением,но чаще всего оно используется для управления Docker контейнер。Внизлапшада Kubernetes и Docker Основные методы интеграции контейнеров:

  1. использовать Docker зеркало Kubernetes поддерживатьиспользовать Docker зеркало как заявка на контейнеризацию из основы. Кубернетес проходить Docker Hub или Другой склад зеркал, чтобы получить Docker зеркало и разверните его на узлах кластера.
  2. Время выполнения контейнера Kubernetes использовать Время выполнения контейнера(Container Runtime)Приходитьсуществоватьна узле Запустить контейнер。Docker да Kubernetes Поддержка из Время выполнения Один из контейнеров, другой общий из Время выполнения контейнеравозвращатьсявключать containerd и CRI-O。
  3. объект-контейнер существовать Kubernetes В контейнере абстрагируется как Pod эта концепция. один Pod Может содержать один или несколько контейнеров, эти контейнеры имеют одно и то же пространство имен, тома хранения и другие ресурсы. каждый Pod Может содержать один или несколько Docker контейнер。
  4. Оркестровка контейнеров Kubernetes Обеспечивает мощную из Оркестровку Функция контейнеров может автоматически планировать и управлять контейнером в соответствии с потребностями приложения. Кубернетес Может根据资源нуждаться求、состояние здоровья、сетьтакие факторы, как связь Приходить Планированиеконтейнер,И существуют автоматическая балансировка нагрузки и восстановление после сбоев между узлами.
  5. Docker CLI и Kubernetes Kubernetes Предоставляет инструмент командной строки kubectl,используется дляи Кластеры взаимодействуют。хотя Kubernetes использовать Docker контейнер как среда выполнения, но это не зависит напрямую от Docker Интерфейс командной строки. Напротив, Кубернетес обеспечил себя из API и объектная модель, которая позволяет пользователям использовать kubectl Заказать в Управление Приложение кластеромизконтейнери.
  6. Объем хранения контейнера Kubernetes Для управления требованиями к постоянному хранилищу предусмотрены различные типы томов хранения (Volume). Эти объемы хранения могут быть Docker контейнер вместе используют для обеспечения постоянного хранения и данных общего доступа.
  7. контейнерная сеть Kubernetes Предоставляет плагин сети (CNI плагин) для управления соединениями между контейнеризсетами. Эти плагины могут и Docker Контейнер вместе используется для обеспечения сетевой изоляции, балансировки нагрузки, обнаружения сервисов и других функций.

Kubernetes и Docker Контейнеры тесно интегрированы посредством Kubernetes Можно легче управлять и запускать Docker Контейнеризованные приложения и предоставляет множество расширенных функций и инструментов для упрощения оркестровки контейнеров, автоматического развертывания и управления контейнерными приложениями.

5. Характеристики использования контейнера

Безопасность контейнера — это очень важный аспект в контейнере даконтейнер даконтейнер контейнер даконтейнер, и он часто включает в себя конфиденциальные данные и критическую бизнес-логику. Вот некоторые распространенные меры и лучшие практики для повышения безопасности:

  1. использоватьчиновникзеркало старайся изо всех силиспользоватьчиновникиз Docker Зеркалоили Доверьте складу иззеркало, чтобы получить контейнерзеркало. Официальное зеркало обычно регулярно обновляется для устранения дыр в безопасности и обеспечения последней версии безопасности.
  2. Уменьшить размер зеркала При строительстве контейнера,Старайтесь выбирать минимум из базового зеркала.,И устанавливайте только те зависимости, которые необходимы приложению. Уменьшение размера зеркала уменьшает поверхность атаки и повышает безопасность.
  3. Регулярные обновлениязеркало Регулярно обновляйте систему, чтобы применять последние исправления и исправления безопасности. Вы можете использовать автоматизированные инструменты для мониторинга и обновления обновлений, чтобы снизить риск отсутствия обновлений вручную.
  4. Внедрить подпись контейнерзеркало использоватьконтейнерзеркало подпись для проверки происхождения и целостности зеркалаиз. Подпись контейнерзеркало предотвращает подделку и замену зеркала, тем самым повышая безопасность контейнера.
  5. Ограничить разрешения контейнера В соответствии с принципом наименьших привилегий постарайтесь ограничить объем доступа. Например, используйте непривилегированного пользователя Запустить контейнер,ииспользовать Linux из пространства имен и группы управления для изоляции контейнера.
  6. Внедрить сетевую изоляцию существоватьконтейнермежду Внедрить сетевую изоляция для предотвращения несанкционированного доступа и атак. Можно использоватьконтейнерную сетевой плагин для реализации сетевой изоляции, правил брандмауэра и контроля трафика.
  7. использовать Конфигурация безопасности Контейнер Оркестровка Платформа контейнеров для настройки безопасности, включая включение опций безопасности, ограничение доступа к ресурсам, использование политик безопасности и т. д. Убедитесь, что конфигурация безопасности хост-компьютера соответствует передовым практикам и стандартам безопасности.
  8. Мониторинг и аудит осуществлять Мониторинг и аудитмеханизм Приходить Обнаружениеи Реагировать на инциденты безопасностииугрожать。мониторконтейнер Активность、бревноииндекс,и регулярно проверять политики и конфигурации безопасности,и оперативно реагировать на инциденты безопасности.
  9. Обучение и осведомленность в области безопасности Улучшайте членов командыи Разработчикизосведомленность о безопасности,Укрепить обучение и образование в области безопасности. Убедитесь, что команда понимает лучшие практики безопасности,И знать, как реагировать на угрозы безопасности и инциденты.
  10. Постоянное улучшение контейнербезопасностьдаодин Постоянное улучшениеизпроцесс,Меры безопасности необходимо постоянно пересматривать и совершенствовать. Проводить регулярные проверки безопасности, сканирование уязвимостей и тесты на проникновение.,и устранять уязвимости и дефекты безопасности.

С помощью вышеуказанных мер и лучших практик вы можете повысить безопасность контейнерных приложений, снизить риски и угрозы безопасности, а также защитить конфиденциальные данные и критически важную бизнес-логику.

6. Резюме

В этой статье представлены Docker процесс создания контейнера ииспользовать. Сначала мы рассмотрели возможность использования существующего зеркала Создать контейнеризшаг,проходить docker run Команду можно легко Запустить контейнер. Во-вторых, мы узнали, как можно настроить зеркало в соответствии с потребностями конкретных приложений, включая рисование. Dockerfile、Создать образи Добавить зеркало на склад и другие этапы. Затем мы обсудили такие операции, как запуск, остановка, просмотр статуса, вход и удаление контейнеризаций, а также способы совместного использования используемых томов между контейнеризданными. Наконец, мы кратко представляем контейнерную сеть,включать Сетевой режим по умолчанию、Пользовательская сетьивнешнее соединениеи т. д.。 Docker контейнериз Процесс создания ииспользовать относительно прост и гибок. Освоить основыиз Docker команда Благодаря этой концепции разработчики могут легко создавать, развертывать стандартизированные приложения и управлять ими, создавая быструю, согласованную и воспроизводимую среду разработки. Докер Популярность и популярность контейнерных технологий сделали контейнерные технологии важной частью современной разработки программного обеспечения, обеспечивая прочную основу для создания надежных, масштабируемых и безопасных приложений.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose