26 команд Docker с примерами

Шпаргалка команды Docker для сисадмина и разработчиков…


Docker – это система контейнеризации, которая упаковывает и запускает приложение со своими зависимостями внутри контейнера. Есть несколько команд docker, которые вы должны знать при работе с Docker. Эта статья все об этом.

Если вы не знаете, что такое Docker, вы можете взять это Курс для начинающих удемей.

Нахождение версии

Первое, что вы хотите знать, это как найти установленную версию докера.

[Электронная почта защищена]: / home / geekflare $ docker –version

Докер версия 18.09.6, сборка 481bc77

Загрузка изображения

Допустим, вам нужно вытащить образ докера из dockerhub (хранилище докеров). Следующий пример извлечения образа HTTP-сервера Apache.

[Электронная почта защищена]: / home / geekflare $ docker pull httpd

Использование тега по умолчанию: последний

последнее: извлечение из библиотеки / httpd

f5d23c7fed46: извлечение завершено

b083c5fd185b: извлечение завершено

bf5100a89e78: извлечение завершено

98f47fcaa52f: вытащить завершено

622a9dd8cfed: вытащить завершено

Дайджест: sha256: 8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642

Статус: загружен новый образ для httpd: последний

[Электронная почта защищена]: / Главная / geekflare $

Картинки

Перечислите все образы докеров, загруженных в систему, с такими деталями, как TAG / IMAGE ID / SIZE и т. Д..

[Электронная почта защищена]: / home / geekflare $ docker images

РАЗМЕР ИД ИЗОБРАЖЕНИЯ В РЕГИСТРАЦИИ

httpd последний ee39f68eb241 2 дня назад 154MB

hello-world последнее fce289e99eb9 6 месяцев назад 1.84kB

sequenceiq / hadoop-docker 2.7.0 789fa0a3b911 4 года назад 1.76GB

Запустить

Запустите образ докера, упомянутый в команде. Эта команда создаст док-контейнер, в котором будет работать HTTP-сервер Apache.

[Электронная почта защищена]: / home / geekflare $ docker run -it -d httpd

09ca6feb6efc0578951a3e2557ed5855b2edda39a795d9703eb54d975930fe6e

Что работает?

ps перечисляет все запущенные Docker-контейнеры с деталями контейнера.

[Электронная почта защищена]: / home / geekflare $ docker ps

КОНТЕЙНЕР ID ИМИДЖ КОМАНДА СОЗДАННЫЕ СТАТУС ИМЕНА ПОРТОВ

09ca6feb6efc httpd               "HTTPD-план"   36 секунд назад до 33 секунд 80 / tcp suspicious_bell

Как видите, сервер Apache работает в этом контейнере Docker..

пс -а

Перечислите все Docker-контейнеры, работающие / вышедшие / остановленные с подробной информацией о контейнерах.

[Электронная почта защищена]: / home / geekflare $ docker ps -a

КОНТЕЙНЕР ID ИМИДЖ КОМАНДА СОЗДАННЫЕ СТАТУС ИМЕНА ПОРТОВ

09ca6feb6efc httpd                            "HTTPD-план"       51 секунда назад до 49 секунд 80 / tcp suspicious_bell

2f6fb3381078 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -d"   2 недели назад Выйти (137) 9 дней назад quizzical_raman

9f397feb3a46 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -…"   2 недели назад Exited (255) 2 недели назад 2122 / tcp, 8030-8033 / tcp, 8040 / tcp, 8042 / tcp, 8088 / tcp, 19888 / tcp, 50070 / tcp, 50010 / tcp, 50020 / tcp, 50070 / tcp, 50075 / tcp, 50090 / tcptermin_ritchie

9b6343d3b5a0 Привет-мир                      "/Привет"                 2 недели назад Выйти (0) 2 недели назад peace_mclean

Exec

Получите доступ к контейнеру Docker и запускайте команды внутри контейнера. Я получаю доступ к серверу Apache в этом примере.

[Электронная почта защищена]: / home / geekflare $ docker exec -it 09ca6feb6efc bash

[Электронная почта защищена]: / usr / local / apache2 # ls

bin build cgi-bin conf error htdocs значки включают модули логов

[Электронная почта защищена]: / USR / местные / apache2 #

Введите выход и нажмите Enter, чтобы выйти из контейнера.

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

Удалите контейнер докера с идентификатором контейнера, указанным в команде.

[Электронная почта защищена]: / home / geekflare $ docker rm 9b6343d3b5a0

9b6343d3b5a0

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

[Электронная почта защищена]: / home / geekflare $ docker ps -a

КОНТЕЙНЕР ID ИМИДЖ КОМАНДА СОЗДАННЫЕ СТАТУС ИМЕНА ПОРТОВ

09ca6feb6efc httpd                            "HTTPD-план"       Около минуты назад вверх около минуты 80 / tcp suspicious_bell

2f6fb3381078 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -d"   2 недели назад Выйти (137) 9 дней назад quizzical_raman

9f397feb3a46 sequenceiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -…"   2 недели назад Exited (255) 2 недели назад 2122 / tcp, 8030-8033 / tcp, 8040 / tcp, 8042 / tcp, 8088 / tcp, 19888 / tcp, 50070 / tcp, 50010 / tcp, 50020 / tcp, 50070 / tcp, 50075 / tcp, 50090 / tcptermin_ritchie

Удаление изображения

Удалите образ докера с идентификатором образа докера, упомянутым в команде

[Электронная почта защищена]: / home / geekflare $ docker rmi fce289e99eb9

Без тегов: hello-world: последние

Untagged: [Электронная почта защищена]: 41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8

Удалено: sha256: fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e

Удалено: sha256: af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3

[Электронная почта защищена]: / Главная / geekflare $

Перезапустите Docker

Перезапустите докер-контейнер с идентификатором контейнера, указанным в команде.

[Электронная почта защищена]: / home / geekflare $ docker restart 09ca6feb6efc

09ca6feb6efc

Запустите команду ниже и проверьте параметр STATUS, чтобы убедиться, что контейнер запущен недавно.

[Электронная почта защищена]: / home / geekflare $ docker ps

КОНТЕЙНЕР ID ИМИДЖ КОМАНДА СОЗДАННЫЕ СТАТУС ИМЕНА ПОРТОВ

09ca6feb6efc httpd               "HTTPD-план"   6 минут назад до 9 секунд 80 / tcp suspicious_bell

Остановка Докер

Остановить контейнер с идентификатором контейнера, указанным в команде.

[Электронная почта защищена]: / home / geekflare $ docker stop 09ca6feb6efc

09ca6feb6efc

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

[Электронная почта защищена]: / home / geekflare $ docker ps

КОНТЕЙНЕР ID ИМИДЖ КОМАНДА СОЗДАННЫЕ СТАТУС ИМЕНА ПОРТОВ

Запуск Docker

Эта команда в Docker запускает контейнер Docker с идентификатором контейнера, упомянутым в команде.

[Электронная почта защищена]: / home / geekflare $ docker start 09ca6feb6efc

09ca6feb6efc

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

[Электронная почта защищена]: / home / geekflare $ docker ps

КОНТЕЙНЕР ID ИМИДЖ КОМАНДА СОЗДАННЫЕ СТАТУС ИМЕНА ПОРТОВ

09ca6feb6efc httpd               "HTTPD-план"   8 минут назад до 3 секунд 80 / tcp suspicious_bell

Убийство

Немедленно остановите док-контейнер. Docker stop команда корректно останавливает контейнер, в этом разница между командами kill и stop.

[Электронная почта защищена]: / home / geekflare $ docker kill 09ca6feb6efc

09ca6feb6efc

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

[Электронная почта защищена]: / home / geekflare $ docker ps

КОНТЕЙНЕР ID ИМИДЖ КОМАНДА СОЗДАННЫЕ СТАТУС ИМЕНА ПОРТОВ

совершить

Сохраните новый образ докера с идентификатором контейнера, указанным в команде в локальной системе. В приведенном ниже примере geekflare – это имя пользователя, а httpd_image – имя изображения..

[Электронная почта защищена]: / home / geekflare $ docker commit 09ca6feb6efc geekflare / httpd_image

sha256: d1933506f4c1686ab1a1ec601b1a03a17b41decbc21d8acd893db090a09bb31c

Авторизоваться

Войдите в докер-хаб. Вам будет предложено войти в учетные данные док-концентратора для входа.

[Электронная почта защищена]: / home / geekflare $ docker login

Войдите с вашим идентификатором Docker, чтобы выталкивать и извлекать изображения из Docker Hub Если у вас нет идентификатора Docker, перейдите на https://hub.docker.com, чтобы создать его..

Имя пользователя: geekflare

Пароль:

Настройте помощник по учетным данным, чтобы удалить это предупреждение. Видеть

https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Войти успешно

От себя

Загрузите образ докера с именем образа, указанным в команде на докер-хабе.

[Электронная почта защищена]: / home / geekflare $ docker push geekflare / httpd_image

Толчок относится к хранилищу [docker.io/geekflare/httpd_image]

734d9104a6a2: толкнул

635721fc6973: Монтируется из библиотеки / httpd

bea448567d6c: Монтируется из библиотеки / httpd

bfaa5f9c3b51: монтируется из библиотеки / httpd

9d542ac296cc: монтируется из библиотеки / httpd

d8a33133e477: монтируется из библиотеки / httpd

последний: дайджест: sha256: 3904662761df9d76ef04ddfa5cfab764b85e3eedaf10071cfbe2bf77254679ac размер: 1574

Докерская сеть

Следующая команда в Docker перечисляет подробную информацию обо всей сети в кластере.

[Электронная почта защищена]: / home / geekflare $ docker network ls

ИМЯ СЕТИ ИМЯ ДРАЙВЕР ОБЛАСТЬ ПРИМЕНЕНИЯ

85083e766f04 Мост Мост местный

хост f51d1f3379e0 локальный

5e5d9a192c00 нет ноль местный

Есть несколько других сетевых команд докера.

[Электронная почта защищена]: / home / geekflare $ docker network

Использование: Docker Network COMMAND

Управлять сетями

Команды:

подключить подключить контейнер к сети

создать создать сеть

отключите отключите контейнер от сети

проверять отображение подробной информации в одной или нескольких сетях

ls Список сетей

удалить все неиспользуемые сети

Удалить одну или несколько сетей

Запустите ‘docker network COMMAND –help’ для получения дополнительной информации о команде.

Информация о докере

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

[Электронная почта защищена]: / home / geekflare $ информация о докере

Контейнеры: 3

Бег: 1

Приостановлено: 0

Остановился: 2

Изображения: 3

Версия сервера: 18.09.6

Драйвер накопителя: overlay2

Резервная файловая система: extfs

Поддерживает d_type: true

Родной Diff Overlay: правда

Драйвер регистрации: json-файл

Драйвер Cgroup: cgroupfs

Плагины:

Объем: местный

Сеть: мост хоста Macvlan NULL наложение

Log: awslogs fluentd gcplogs gelf journald json-файл local logentries spunk syslog

Рой: неактивен

Время выполнения: runc

Время выполнения по умолчанию: runc

Init Binary: docker-init

контейнерная версия: bb71b10fd8f58240ca47fbb579b9d1028eea7c84

Версия runc: 2b18fe1d885ee5083ef9f0838fee39b62d653e30

init версия: fec3683

Параметры безопасности:

AppArmor

Seccomp

Профиль: по умолчанию

Версия ядра: 4.18.0-25-generic

Операционная система: Ubuntu 18.10

OSType: Linux

Архитектура: x86_64

Процессоры: 1

Общая память: 4.982 ГБ

Название: geekflare

ID: RBCP: YGAP: QG6H: B6XH: JCT2: DTI5: AYJA: M44Z: ETRP: 6TO6: OPAY: KLNJ

Корень директории Docker: / var / lib / docker

Режим отладки (клиент): false

Режим отладки (сервер): false

Имя пользователя: geekflare

Реестр: https://index.docker.io/v1/

Метки:

Экспериментальный: ложный

Небезопасные реестры:

127.0.0.0/8

Восстановление в реальном времени включено: false

Лицензия на продукт: Community Engine

Копирование файла

Скопируйте файл из контейнера Docker в локальную систему.

В этом примере я копирую файл httpd.pid в контейнер докера с идентификатором 09ca6feb6efc в / home / geekflare /

[Электронная почта защищена]: / home / geekflare $ sudo docker cp 09ca6feb6efc: /usr/local/apache2/logs/httpd.pid / home / geekflare /

[sudo] пароль для geekflare:

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

[Электронная почта защищена]: / home / geekflare $ ls

Пример настольных документов examples.desktop httpd.pid nginx_new.yml nginx.yml

Проверка истории

Показывает историю образа докера с именем образа, упомянутым в команде.

г[Электронная почта защищена]: / home / geekflare $ docker history httpd

ИЗОБРАЖЕНИЕ СОЗДАНО РАЗМЕРОМ КОММЕНТАРИИ

ee39f68eb241 2 дня назад / bin / sh -c # (nop) CMD ["HTTPD-план"] 0B

           2 дня назад / bin / sh -c # (nop) EXPOSE 80 0B

           2 дня назад / bin / sh -c # (nop) Файл COPY: c432ff61c4993ecd… 138B

           4 дня назад / bin / sh -c set -eux; savedAptMark ="$ (apt-m… 49.1MB

           4 дня назад / bin / sh -c # (nop) ENV HTTPD_PATCHES = 0B

           4 дня назад / bin / sh -c # (nop) ENV HTTPD_SHA256 = b4ca9d05… 0B

           4 дня назад / bin / sh -c # (nop) ENV HTTPD_VERSION = 2.4.39 0B

           4 дня назад / bin / sh -c set -eux; apt-get update; apt-g… 35.4MB

           4 дня назад / bin / sh -c # (nop) WORKDIR / usr / local / apache2 0B

           4 дня назад / bin / sh -c mkdir -p "$ HTTPD_PREFIX"  && чау-чау… 0B

           4 дня назад / bin / sh -c # (nop) ENV PATH = / usr / local / apach… 0B

           4 дня назад / bin / sh -c # (nop) ENV HTTPD_PREFIX = / usr / loc… 0B

           5 дней назад / bin / sh -c # (nop) CMD ["удар"] 0B

           5 дней назад / bin / sh -c # (nop) ADD файл: 71ac26257198ecf6a… 69.2MB

Проверка логов

Показать журналы Docker-контейнера с указанным в команде идентификатором.

[Электронная почта защищена]: / home / geekflare $ docker logs 09ca6feb6efc

AH00558: httpd: Не удалось надежно определить полное доменное имя сервера, используя 172.17.0.2. Установите глобальную директиву «ServerName», чтобы подавить это сообщение

AH00558: httpd: Не удалось надежно определить полное доменное имя сервера, используя 172.17.0.2. Установите глобальную директиву «ServerName», чтобы подавить это сообщение

[Пн Июл 15 14: 01: 55.400472 2019] [mpm_event: note] [pid 1: tid 140299791516800] AH00489: Apache / 2.4.39 (Unix) настроен – возобновление обычных операций

[Пн Июл 15 14: 01: 55.400615 2019] [core: note] [pid 1: tid 140299791516800] AH00094: Командная строка: ‘httpd -D FOREGROUND’

[Пн Июл 15 14: 08: 36.798229 2019] [mpm_event: note] [pid 1: tid 140299791516800] AH00491: пойман SIGTERM, закрывается

AH00558: httpd: Не удалось надежно определить полное доменное имя сервера, используя 172.17.0.2. Установите глобальную директиву «ServerName», чтобы подавить это сообщение

AH00558: httpd: Не удалось надежно определить полное доменное имя сервера, используя 172.17.0.2. Установите глобальную директиву «ServerName», чтобы подавить это сообщение

[Пн Июл 15 14: 08: 38.259870 2019] [mpm_event: note] [pid 1: tid 139974087980160] AH00489: Apache / 2.4.39 (Unix) настроен – возобновление обычных операций

[Пн Июл 15 14: 08: 38.260007 2019] [core: note] [pid 1: tid 139974087980160] AH00094: Командная строка: ‘httpd -D FOREGROUND’

[Пн Июл 15 14: 09: 01.540647 2019] [mpm_event: note] [pid 1: tid 139974087980160] AH00491: перехватил SIGTERM, отключение

AH00558: httpd: Не удалось надежно определить полное доменное имя сервера, используя 172.17.0.2. Установите глобальную директиву «ServerName», чтобы подавить это сообщение

AH00558: httpd: Не удалось надежно определить полное доменное имя сервера, используя 172.17.0.2. Установите глобальную директиву «ServerName», чтобы подавить это сообщение

[Пн Июл 15 14: 10: 43.782606 2019] [mpm_event: note] [pid 1: tid 140281554879616] AH00489: Apache / 2.4.39 (Unix) настроен – возобновление обычных операций

[Пн Июл 15 14: 10: 43.782737 2019] [core: note] [pid 1: tid 140281554879616] AH00094: Командная строка: ‘httpd -D FOREGROUND’

AH00558: httpd: Не удалось надежно определить полное доменное имя сервера, используя 172.17.0.2. Установите глобальную директиву «ServerName», чтобы подавить это сообщение

AH00558: httpd: Не удалось надежно определить полное доменное имя сервера, используя 172.17.0.2. Установите глобальную директиву «ServerName», чтобы подавить это сообщение

[Пн Июл 15 14: 14: 08.270906 2019] [mpm_event: note] [pid 1: tid 140595254346880] AH00489: Apache / 2.4.39 (Unix) настроен – возобновление обычных операций

[Пн Июл 15 14: 14: 08.272628 2019] [core: note] [pid 1: tid 140595254346880] AH00094: Командная строка: ‘httpd -D FOREGROUND’

Поиск изображения

Найдите изображение docker на dockerhub с именем, указанным в команде.

[Электронная почта защищена]: / home / geekflare $ docker search hadoop

ИМЯ ОПИСАНИЕ ЗВЕЗД ОФИЦИАЛЬНО АВТОМАТИЗИРОВАННЫЙ

sequenceiq / hadoop-docker Простой способ попробовать Hadoop 611 [OK]

Uhopper / hadoop Базовое изображение Hadoop с динамической конфигурацией… 98 [OK]

харисехон / hadoop Apache Hadoop (HDFS + пряжа, теги 2.2 – 2.8) 54 [OK]

bde2020 / hadoop-namenode Hadoop namenode кластера hadoop 22 [OK]

kiwenlau / hadoop Запуск кластера Hadoop в контейнерах Docker 19

izone / Hadoop Hadoop 2.8.5 Экосистема полностью распределена, Ju… 14 [OK]

uhopper / hadoop-namenode Hadoop namenode 9 [OK]

bde2020 / hadoop-datanode Датадода Hadoop кластера hadoop 9 [OK]

особенности / hadoop Apache Hadoop 8 [OK]

Uhopper / Hadoop-Datanode Hadoop Datanode 7 [OK]

harisekhon / hadoop-dev Apache Hadoop (HDFS + пряжа) + инструменты разработки + Gi… 6 [OK]

Обновление конфигурации

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

[Электронная почта защищена]: / home / geekflare $ обновление докера –help

Использование: обновление докера [ОПЦИИ] КОНТЕЙНЕР [КОНТЕЙНЕР …]

Обновить конфигурацию одного или нескольких контейнеров

Опции:

–blkio-weight uint16 Block IO (относительный вес), от 10 до 1000 или 0 для отключения

(по умолчанию 0)

–cpu-period int Limit CPU CFS (полностью честный планировщик) период

–cpu-quota int Предельная квота CPU CFS (полностью честный планировщик)

–cpu-rt-period int Ограничение периода реального времени процессора в микросекундах

–cpu-rt-runtime int Ограничение времени работы процессора в режиме реального времени в микросекундах

-c, –cpu-shares int CPU долей (относительный вес)

–десятичное число процессоров

–cpuset-cpus string CPU, в которых разрешено выполнение (0-3, 0,1)

–строковые MEMs cpuset-mems, в которых разрешено выполнение (0-3, 0,1)

–байт памяти ядра ограничение памяти ядра

-m, – память байтов Предел памяти

–байты резервирования памяти Мягкое ограничение памяти

–байт подкачки памяти Предел подкачки равен памяти плюс своп: ‘-1’ для включения неограниченного свопинга

–строка перезапуска Политика перезапуска для применения при выходе из контейнера

Запустите приведенную ниже команду, чтобы обновить конфигурацию ЦП контейнера Docker с помощью идентификатора контейнера, указанного в команде.

[Электронная почта защищена]: / home / geekflare $ docker update -c 1 2f6fb3381078

2f6fb3381078

Создание объема

Создать том, который Docker-контейнер будет использовать для хранения данных.

[Электронная почта защищена]: / home / geekflare $ docker том создать

7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Запустите приведенную ниже команду, если том создан или нет.

[Электронная почта защищена]: / home / geekflare $ docker volume ls

ИМЯ ДРАЙВЕРА ОБЪЕМ

местный 7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Установка плагина

Установите подключаемый модуль docker vieux / sshfs со средой отладки, установленной на 1.

[Электронная почта защищена]: / home / geekflare $ docker установить плагин vieux / sshfs DEBUG = 1

Plugin "Vieux / SSHFS" запрашивает следующие привилегии:

– сеть: [хост]

– mount: [/ var / lib / docker / plugins /]

– крепление: []

– устройство: [/ dev / fuse]

– Возможности: [CAP_SYS_ADMIN]

Предоставляете ли вы вышеуказанные разрешения? [год / год] год

последнее: извлечение из vieux / sshfs

52d435ada6a4: загрузка завершена

Дайджест: sha256: 1d3c3e42c12138da5ef7873b97f7f32cf99fb6edde75fa4f0bcf9ed277855811

Статус: загружен новый образ для vieux / sshfs: последние

Установленный плагин vieux / sshfs

Запустите приведенную ниже команду, чтобы получить список подключаемых модулей Docker..

[Электронная почта защищена]: / home / geekflare $ плагин для докеров ls

ID ИМЯ ОПИСАНИЕ ВКЛЮЧЕНО

2a32d1fb95af vieux / sshfs: последний плагин sshFS для Docker true

Выйти

Выход из Dockerhub.

[Электронная почта защищена]: / home / geekflare $ docker выход из системы

Удаление учетных данных для входа в https://index.docker.io/v1/

Вывод

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

Если вы заинтересованы в изучении Docker и Kubernetes, то проверьте это онлайн курс.

TAGS:

  • докер

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map