При создании контейнера с использованием существующего образа обычно выполняются следующие шаги:
Получить изображение:первый,Нужно начать сDocker Hubилидругойзеркало На складе есть то, что вам нужноиззеркало。Можетиспользоватьdocker pull
Заказ приходит Получить изображение, грамматика следующая:
docker pull <зеркалоимя>:<Этикетка>
в,<зеркалоимя>
дачтобы получитьиззеркалоизимя,<Этикетка>
да Необязательныйиз Версияилиидентификатор。
Создать контейнер:один разполучите то, что вам нужно иззеркало,Сразу Можетиспользоватьdocker run
Заказ приходит Создать контейнер。в целом,При использовании Запустить контейнер вы можете указать некоторые параметры для настройки поведения контейнера.,Напримерсопоставление портов、данные Крепление тома и т.д.。базовыйиз Синтаксис следующий:
docker run [параметры] <зеркалоимя>:<Этикетка>
в,[параметры]
да Необязательныйизпараметр,для конфигурацииконтейнериз Режим работы。<зеркалоимя>:<Этикетка>
Указано дляиспользоватьиззеркалои Версияили Этикетка。
Пример:Ниже приводится простой Пример,Показывает, как создать работающий изконтейнер из существующего изнгинксзеркало.,и будетконтейнериз80сопоставление портовразместитьиз8080порт:
docker run -d -p 8080:80 nginx
существоватьэтот Примерсередина,-d
параметрвыражатьв фоновом режиме Запустить контейнер,-p 8080:80
Указатьконтейнериз80сопоставление портовразместитьиз8080порт,nginx
дахотетьиспользоватьиззеркалоимя。
Посмотреть статус контейнера:Создать контейнерназад,Можетиспользоватьdocker ps
команда для просмотра текущегосуществоватьбегатьизконтейнерсписок,Чтобы убедиться, что контейнер успешно создан и работает. Чтобы просмотреть весь контейнер,Включает снятый с производства изконтейнер,Можетдобавить в-a
параметр。
Это основные шаги по созданию контейнера с использованием существующего образа. В соответствии с фактическими потребностями вы можете дополнительно настроить конфигурацию контейнера, например подключить тома данных, установить переменные среды и т. д.
Пользовательские образы создаются путем написания файла Dockerfile и использования команды сборки Docker. Вот основные шаги для создания собственного изображения:
писать Dockerfile: Dockerfile Представляет собой текстовый файл, содержащий инструкции по созданию изображения. существовать Dockerfile , вы можете определить операции и настройки, необходимые для запуска из базового образа, такие как установка пакетов, установка переменных среды, добавление файлов и т. д. Вот простой пример Dockerfile:
# использоватьчиновникиз Node.js зеркало как основа зеркала
FROM node:14
# Установить рабочий каталог
WORKDIR /app
# Изменить текущий каталог документкопирования на рабочий каталог.
COPY . .
# Установить зависимости приложения
RUN npm install
# Выставить приложение из портов
EXPOSE 3000
# Определите контейнер для запуска команды из при запуске
CMD ["node", "app.js"]
Создать образ:
существоватьписатьхороший Dockerfile После этого используйте docker build
Команда для создания образа. В команде нужно указать Dockerfile Каталог, в котором оно находится (обычно текущий каталог), а также имя и необязательная метка для имени изображения. Например:
docker build -t my-custom-image .
существоватьэтот Примерсередина,-t
параметриспользуется дляобозначениезеркалоизимя(my-custom-image
),.
выражать Dockerfile Каталог, в котором он находится, является текущим каталогом.
Запустить контейнер:
После успешной сборки вы можете использовать docker run
команда для запуска вновь созданного образа и создания экземпляра контейнера. Например:
docker run -d -p 3000:3000 my-custom-image
Эта команда запустит контейнер в фоновом режиме и сопоставит порт 3000 контейнера с портом 3000 хоста.
Выполнив описанные выше шаги, вы можете создать собственный образ Docker и запустить приложение в контейнере. В реальных приложениях вам может потребоваться настроить Dockerfile более индивидуально в соответствии с требованиями вашего приложения.
Запуск и остановка контейнеров — распространенные операции при запуске контейнеров с помощью Docker. Вот основные шаги по запуску и остановке контейнера:
Запустить контейнер
docker start
команда для его запуска. Синтаксис следующий:docker start <контейнерID или контейнеримя>
docker run
Заказ.Например:docker run -d <зеркалоимя>
Это запускает новый контейнер в фоновом режиме.
Остановить контейнер
docker stop
команду остановить это. Синтаксис следующий:docker stop <контейнерID или контейнеримя>
Это отправляет сигнал остановки контейнеру, заставляя его прекратить работу.
docker kill
Заказсила Остановить контейнер。Например:docker kill <контейнерID или контейнеримя>
Пример Следующий даа Пример демонстрирует, как начать и Остановить. контейнер:
Запустить контейнер:
docker start my-container
Остановить контейнер:
docker stop my-container
Пожалуйста, обязательно замените <контейнерID или контейнеримя>
для настоящего контейнера ID или Имя. использовать Эти команды вы можете легко контролировать Docker Запуск и остановка контейнеров.
Чтобы просмотреть статус контейнера, вы можете использовать docker ps
Заказ. Эта команда используется для вывода списка запущенных в данный момент контейнеров. Если вы хотите просмотреть все контейнеры, включая остановленные, вы можете использовать docker ps -a
Заказ.
Просмотр запущенных контейнеров Используйте следующую команду, чтобы просмотреть список запущенных в данный момент контейнеров:
docker ps
Появится список, содержащий некоторую ключевую информацию о контейнере, такую как идентификатор контейнера, имя изображения, время создания, статус и т. д.
Просмотр всех контейнеров (включая остановленные контейнеры)
Если вы хотите просмотреть все контейнеры, включая остановленные, вы можете использовать -a
параметр:
docker ps -a
Это покажет все контейнеры независимо от того, работает ли их статус или остановлен.
Пример Следующий пример:
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” выражатьконтейнертолькосуществоватьбегать。
Чтобы попасть в работающий контейнер и взаимодействовать с ним, вы можете использовать docker exec
Заказ Эта команда позволяет выполнить определенный из Заказ в рамках существующегоконтейнера.
Введите контейнер в интерактивном режиме Shell Чтобы войти в интерактивный контейнер Shell, вы можете использовать следующие команды:
docker exec -it <контейнерID или контейнеримя> /bin/bash
существуют в этой команде,-it
параметр используется для указания использования интерактивного терминала, а /bin/bash
Он должен выполняться внутри контейнера Оболочка. Вы также можете использовать другие Оболочка, например /bin/sh
или /bin/zsh
。
Пример
Например, чтобы ввести файл с именем my-container
Контейнер, вы можете запустить следующую команду:
docker exec -it my-container /bin/bash
Это запустит интерактивную оболочку Bash внутри контейнера и поместит вас в файловую систему контейнера, что позволит вам выполнять команды и просматривать содержимое контейнера.
На что следует обратить внимание
Пожалуйста, обязательно замените <контейнерID или контейнеримя>
для фактического контейнера, в который вы хотите войти ID или Имя. Кроме того, для входа в изконтейнер необходимо быть запущенным из штата.
использовать docker exec
Вход в контейнер — очень полезная функция, позволяющая проводить отладку, просматривать логи, выполнять команды и т. д. внутри контейнера.
Чтобы удалить контейнер, вы можете использовать docker rm
Заказ.Следующим образом можно удалить базовую грамматику контейнера:
docker rm <контейнерID или контейнеримя>
Эта команда удалит указанный контейнер. Вы также можете удалить несколько контейнеров одновременно, просто укажите несколько контейнеров в команде ID илиимя。
Пример
Например, чтобы удалить файл с именем my-container
Контейнер, вы можете запустить следующую команду:
docker rm my-container
Удалить все контейнеры
Если вы хотите удалить все остановленные изконтейнеры, вы можете объединить использование docker ps -a
команда и awk
Заказ.Например, чтобы удалить все остановленные Контейнеры, вы можете запустить следующую команду:
docker rm $(docker ps -a -q)
существуют в этой команде,docker ps -a -q
Используется для вывода списка всех контейнеров ID, а затем пройти $(...)
поместите это ID перешел к docker rm
команда для удаления этих контейнеров.
На что следует обратить внимание
-f
параметр Приходитьсилаудалитьконтейнер,Например:docker rm -f <контейнерID или контейнеримя>
。Контейнерная сеть — это Docker Важная концепция Python, позволяющая контейнерам взаимодействовать друг с другом и с внешним миром. В контейнерной сети каждый контейнер имеет свой собственный IP адрес, доступ к которому можно получить через этот IP Адрес и другие хосты контейнерили для связи. Ниже приведены некоторые ключевые концепции и характеристики контейнерных сетей (подробности о сети будут показаны в последующих главах):
Контейнерная сеть — это Docker Важная часть контейнера, она обеспечивает контейнеру возможность взаимодействовать и подключаться к внешнему миру. Понимая базовые концепции и характеристики контейнерных сетей, вы сможете лучше понимать и управлять сетевым развертыванием контейнерных приложений.
Общий объем данных Docker Механизм реализации совместного использования контейнера и данных. том данных да Специальный каталог, который может обходить систему контейнериздокументов и к которому может получить доступ один или несколько общих ресурсов контейнера. Общий том данных позволяет нескольким контейнерам читать и записывать данные в один и тот же том данных, тем самым обеспечивая совместное и постоянное хранилище данных. Ниже приведены основные функции и использование общих томов данных (подробное объяснение томов будет расширено в последующих главах):
Создать том данных существовать Docker Создать можно двумя способами. том данных:
использовать docker volume create
Команда для создания анонимного тома данных:
docker volume create myvolume
Запустить контейнер при создании именованного тома данных путем указания точки монтирования:
docker run -v myvolume:/path/to/mount ...
Подключите том данных к контейнеру
хотетьсуществоватьконтейнерсерединаиспользоватьданныерулон,нуждатьсяхотетьсуществовать Запустить контейнер смонтирует том данных по пути, указанному в контейнериз. можно использовать -v
или --mount
Параметры для указания точки монтирования.
Общий объем данных с несколькими контейнерами Несколько контейнеров могут выполнять операции чтения и записи на одном и том же томе данных, тем самым обеспечивая совместное использование данных. Просто существовать Запустить Контейнер просто монтируют одинаковые изданные тома в разные изконтейнеры.
Управление жизненным циклом тома данных данныерулон Можетсуществоватьконтейнериз Постоянное хранение в течение жизненного цикладанные,Даже если контейнер удален,Объем данных в изданных остатках. Вы можете удалить тома данных или сохранить их для последующего использования.
использовать Случай Общие тома данных подходят для многих сценариев, в том числе:
Общий объем данных Docker Это важный механизм реализации совместного использования данных и постоянного хранения между контейнерами. Совместное использование томов данных позволяет более гибко разрабатывать контейнерные приложения и управлять ими, а также обеспечивать постоянное хранение и совместное использование данных.
существовать Docker сетевые соединения между контейнерами могут быть реализованы различными способами:
проходитьвыше пути,ты Можетсуществовать Docker Реализуйте гибкие сетевые соединения между контейнерами и выбирайте подходящие сетевые конфигурации в соответствии с потребностями для обеспечения связи и изоляции между контейнерами.
Docker Compose Это инструмент для определения и запуска нескольких контейнеров. Docker Инструменты приложения. через простой YAML С помощью документа вы можете настраивать приложения из служб, сетевых томов и т. д., а также запускать, останавливать и управлять всем приложением с помощью одной команды. Следующие да Docker Compose Основные возможности и использование:
Функции:
использование:
docker-compose.yml
из YAML документ и определить приложение из служб, сети, томов и другую информацию о конфигурации в существующем документе.services
Ключевые слова Приходитьопределениеприложениеиз Различные услуги。Каждая услуга включает в себяконтейнериззеркало、сопоставление портов、Переменные среды и другие конфигурации.docker-compose up
команда для сборки и запуска всего приложения. Докер Compose буду читать docker-compose.yml
документ и создайте и Запустить на основе конфигурации из в документе. контейнер。docker-compose
Заказать в Управление приложениямиизсостояние,включатьзапускать、останавливаться、Перезапуск и удаление операций.Пример Docker Compose документ: Ниже приводится простой Docker Compose документ Пример:
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, упрощая процесс оркестрации и управления контейнерами, а также повышая эффективность разработки и развертывания.
Docker Swarm да Docker Официальный инструмент оркестрации контейнеров, который позволяет объединять несколько Docker Хосты объединяются в виртуальный кластер для облегчения развертывания, управления и расширения приложений.Вниздаиспользовать Docker Swarm Основные шаги по развертыванию кластера:
инициализация Swarm
Прежде всего, существование Docker на хостеинициализация Swarm, этот хост будет действовать как Swarm Кластер из узла управления. использовать docker swarm init
Заказ приходитинициализация Рой. Например:
docker swarm init --advertise-addr <Узел управленияизIPадрес>
существуют в этой команде,--advertise-addr
Параметры, используемые для указания узла управления IP адрес.
Добавить другие узлы Swarm
Далее добавьте другие Docker Хост присоединяется Swarm В качестве рабочего узла в кластере. существуют, выполняются на каждом добавляемом узле из docker swarm join
команда для подключения к Swarm кластер. Например:
docker swarm join --token <SWMTKN> <Узел управленияизIPадрес>:<порт>
существуют в этой команде,<SWMTKN>
даинициализация Swarm генерируется, когда token,<Узел управленияизIPадрес>
да Узел управленияиз IP адрес,<порт>
да Swarm Порт плоскости управления, по умолчанию: 2377。
Служба развертывания
один раз Swarm Кластер установлен, можно использовать docker service
Заказ приходит Служба развертывания. Сервис-даконтейнер из логической единицы, состоящей из одного или нескольких контейнеров и основанной на указанном количестве существующих реплик. Swarm Запуск в кластере. Например:
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
Команда может расширять и уменьшать количество копий сервиса. Например:
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 <узелимя>
Команда для удаления узла из кластера.
На что следует обратить внимание
Kubernetes (часто сокращается до K8s) в открытом исходном коде из Оркестровки платформа контейнеров для автоматического развертывания, расширения и управления контейнерами. Хотя Kubernetes Управлять можно любым контейнерным приложением,но чаще всего оно используется для управления Docker контейнер。Внизлапшада Kubernetes и Docker Основные методы интеграции контейнеров:
kubectl
,используется дляи Кластеры взаимодействуют。хотя Kubernetes использовать Docker контейнер как среда выполнения, но это не зависит напрямую от Docker Интерфейс командной строки. Напротив, Кубернетес обеспечил себя из API и объектная модель, которая позволяет пользователям использовать kubectl
Заказать в Управление Приложение кластеромизконтейнери.Kubernetes и Docker Контейнеры тесно интегрированы посредством Kubernetes Можно легче управлять и запускать Docker Контейнеризованные приложения и предоставляет множество расширенных функций и инструментов для упрощения оркестровки контейнеров, автоматического развертывания и управления контейнерными приложениями.
Безопасность контейнера — это очень важный аспект в контейнере даконтейнер даконтейнер контейнер даконтейнер, и он часто включает в себя конфиденциальные данные и критическую бизнес-логику. Вот некоторые распространенные меры и лучшие практики для повышения безопасности:
С помощью вышеуказанных мер и лучших практик вы можете повысить безопасность контейнерных приложений, снизить риски и угрозы безопасности, а также защитить конфиденциальные данные и критически важную бизнес-логику.
В этой статье представлены Docker процесс создания контейнера ииспользовать. Сначала мы рассмотрели возможность использования существующего зеркала Создать контейнеризшаг,проходить docker run
Команду можно легко Запустить контейнер. Во-вторых, мы узнали, как можно настроить зеркало в соответствии с потребностями конкретных приложений, включая рисование. Dockerfile、Создать образи Добавить зеркало на склад и другие этапы. Затем мы обсудили такие операции, как запуск, остановка, просмотр статуса, вход и удаление контейнеризаций, а также способы совместного использования используемых томов между контейнеризданными. Наконец, мы кратко представляем контейнерную сеть,включать Сетевой режим по умолчанию、Пользовательская сетьивнешнее соединениеи т. д.。 Docker контейнериз Процесс создания ииспользовать относительно прост и гибок. Освоить основыиз Docker команда Благодаря этой концепции разработчики могут легко создавать, развертывать стандартизированные приложения и управлять ими, создавая быструю, согласованную и воспроизводимую среду разработки. Докер Популярность и популярность контейнерных технологий сделали контейнерные технологии важной частью современной разработки программного обеспечения, обеспечивая прочную основу для создания надежных, масштабируемых и безопасных приложений.