====== Общее ====== //Базовая информация об инсталляции:// docker info ---- ====== Работа с контейнерами ====== ===== Список команд для работы с контейнерами ===== ^ Команда ^ Применение ^ | **%%docker run --name [container-id] -d -p 80:80 [image name]%%** | //Запуск контейнера с образа на 80 порту// | | **%%docker ps%%** | //Просмотр только запущенных контейнеров// | | **%%docker ps -a%%** | //Просмотр запущенных и остановленных контейнеров// | | **%%docker attach [container-id]%%** | //Для подсоединения к запущенному контейнеру// | | **%%docker start [container-id]%%** | //Запуск контейнера// | | **%%docker stop [container-id]%%** | //Остановка запущенного контейнера// | | **%%docker restart [container-id]%%** | //Перезагрузка запущенного контейнера// | | **%%docker kill [container-id]%%** | //Выключение запущенного контейнера// | | **%%docker rm [container-id]%%** | //Удаление остановленного контейнера// | | **%%docker rm `docker ps -a -q`%%** | //Удалить все оставшиеся контейнеры// | | **%%docker commit [container-id] [image name]%%** | //Создание нового образа с контейнера// | | **%%docker cp [container-id]:/etc/passwd .%%** | //Копирование файла с контейнера на хост// | | **%%docker inspect [container-id]%%** | //Просмотр информации о контейнере// | | **%%docker inspect --format="{{.NetworkSettings.IPAddress}}" [container-id]%%** | //Посмотреть ip адрес запущеного контейнера// | | **%%docker logs [container-id]%%** | //Посмотреть log контейнера// | | **%%docker top [container-id]%%** | //Посмотреть список процессов контейнера// | | **%%docker history [container-id]%%** | //История команд для данного контейнера// | ---- ===== Дополнительные примеры ===== * **Выход из контейнера** //Выйти из контейнера не останавливая его:// \\ ''Ctrl+p, Ctrl+q'' \\ \\ //Выйти из контейнера и остановить его:// exit ---- ====== Работа с образами ====== ===== Список команд для работы с образами ===== ^ Команда ^ Примечание ^ | **%%docker build -t [image name] .%%** | //Создание образа с помощью build файла// | | **%%docker search %%** | //Поиск образа по ключевому слову// | | **%%docker images%%** | //Список всех локальных образов// | | **%%docker commit [container-id] [new-image-name]%%** | //Запись измененного контейнера под другим именем в локальное хранилище// | | **%%docker pull [image name]%%** | //Скачать образ в локальное хранилище// | | **%%docker rmi [image-id]%%** | //Удалить контейнер с локального хранилища// | | **%%docker load < /tmp/myimage.tar%%** | //Создание образа с tar архива с STDIN// | | **%%docker save [image name] > /tmp/myimage.tar%%** | //Запись образа в tar архив в STDOUT// | | **%%docker import http://example.com/exampleimage.tgz%%** | //Импорт образа с удаленного файла// | | **%%docker import - exampleimagelocal:new%%** | //Импорт с локального файла// | | **%%docker import - exampleimagedir%%** | //Импорт с локальной директории// | ---- ===== Дополнительные примеры ===== * **Загрузка образа** //Доступные опции:// ^ Флаг ^ Значение ^ | **-i** | открыть STDIN | | **-t** | говорит docker открыть pseudo-tty в контейнер | | **-d** | запуск контейнера в фоновом режиме | | **-v** /tmp/src:/src | проброс внутрь контейнера локальной директории | | **-p** 127.0.0.1:8080:80 | проброс порта 80 на хост на порт 8080 | ---- * **Поиск образа** Поиск образа с выводом полного текста описания (DESCRIPTION) docker search --no-trunc ubuntu ---- ====== Dockerfile ====== ===== Список доступных опций ===== ^ Инструкция ^ Значение ^ | **.dockerignore** | //Если в корне билд контекста есть файл .dockerignore – он интерпретируется как список паттернов исключений// | | **FROM** | //Первая инструкция в Dockerfile. Указывает, из какого образа нужно построить образ// | | **MAINTAINER** | //Сообщает Docker автора образа и его email// | | **RUN** | //Исполняет команду в конкретном образе// | | **CMD** | //Указывает, какую команду необходимо запустить, когда контейнер запущен. В отличие от команды RUN указанная команда исполняется не во время построения образа, а во время запуска контейнера. **Можно перегрузить команду CMD, используя docker run**// | | **EXPOSE** | //Говорит Docker, что приложение в контейнере должно использовать определенный порт в контейнере. По соображениям безопасности Docker не открывает порт автоматически, но ожидает, когда это сделает пользователь в команде docker run. Вы можете указать множество инструкций EXPOSE для указания, какие порты должны быть открыты. Также инструкция EXPOSE полезна для проброса портов между контейнерами.// | | **ENV** | //Позволяет посмотреть переменные окружения// | | **ADD** | //Добавляет файлы или папки из нашего билд-окружения в образ. Поддерживает распаковку файлов// | | **COPY** | //Копирует файлы или папки из нашего билд-окружения в образ. Не поддерживает распаковки файлов// | | **ENTRYPOINT** | //Указывает, какую команду необходимо запустить, когда контейнер запущен. Отличается от CMD тем, что вы не можете перегружать ENTRYPOINT при запуске контейнера. Если требуется, вы все-таки можете перегрузить команду ENTRYPOINT с помощью флага **%%--entrypoint%%**// | | **VOLUME** | //Добавляет тома в образ. Том — папка в одном или более контейнерах или папка хоста, проброшенная через Union File System (UFS). Тома могут быть расшарены или повторно использованы между контейнерами. Это позволяет добавлять и изменять данные без коммита в образ// | | **USER** | //Специфицирует пользователя, под которым должен быть запущен образ. Можно указать имя пользователя или UID и группу или GID. Можно перегрузить эту команду, используя **-u** при запуске контейнера. Если пользователь не указан, используется **root** по-умолчанию// | | **WORKDIR** | //Позволяет установить рабочую директорию, откуда будут запускаться команды ENTRYPOINT и CMD. Вы можете перегрузить рабочую директорию контейнера в рантайме с помощью флага **-w**// | | **ONBUILD** | //Добавляет триггеры в образы. Триггер исполняется, когда образ используется как базовый для другого образа, например, когда исходный код, нужный для образа еще не доступен, но требует для работы конкретного окружения// | ---- ===== Дополнительные примеры =====