Список полезных команд при работе с контейнерами docker
Показывает список загруженных образов:
_x000D_docker images Скачать новый образ с сайта hub.docker.com:
_x000D_docker pull centos:7_x000D_ Удалить образ:
_x000D_docker rmi centos:7 Создать контейнер из образа и удалить сразу после выхода из него. Рекомендуется использовать данный способ для отладки и тестирование Docker образов:
_x000D_docker run -it --rm centos:7 Запуск Docker в фоне:
_x000D_docker run -d -it --name centos7 centos:7 Подключиться к существующему контейнеру и выполнить команду bash:
_x000D_docker exec -it centos7 /bin/bash Параметр -it означает задействовать терминал.
Аналогичная команда:
_x000D_docker exec `docker ps | grep centos7 | awk '{print $NF}'` bash Посмотреть список запущеных контейнеров:
_x000D_docker ps Посмотреть список всех контейнеров:
_x000D_docker ps -a Остановить контейнер:
_x000D_docker stop centos7 Удалить контейнер:
_x000D_docker rm centos7 Автоматически запуск контейнеров при старте системы
За автоматический запуск отвечает параметр Docker —restart=unless-stopped. Он означает перезапускать контейнер до тех пор, пока он не будет остановлен вручную. Более подробно о методах перезапуска Docker контейнеров здесь . Команда будет выглядеть следующем образом:
_x000D_docker run -d --name container_name --restart=unless-stopped image_name:tag_name Параметры запуска контейнера
—name — Имя контейнера
—restart — параметры перезагрузки
* no — По умолчанию. Не перезапускать контейнер
* on-failure — Перезапускать при ошибке
* always — Перезапускать, при перезапуске сервиса докер, даже если контейнер был остановлен
* unless-stopped — Перезапускать контейнер, при перезапуске сервиса докер, до тех пор, пока он не будет вручную остановлен.
-e ENV_NAME=value — Установить переменной окружения ENV_NAME значение value
—log-driver=journald — Использовать системный журнал, вместо json файла. Нужно обязательно указывать, т.к. логи json файла постоянно растут и отключена у них ротация
-v container_data:/data — Смонтировать volume container_data в контейнер в папку /data
-v /srv/data:/data — Смонтировать папку с хоста /srv/data в папку контейнера /data
Экспорт, передача по ssh и импорт Docker образов
Сохранить образ в tar.gz файл:
_x000D_docker image save centos:7 | gzip -c > centos7.tar.gz_x000D_ Передать полученный образ по ssh на хост <myhostname>:
_x000D_scp centos7.tar.gz myusername@myhostname:~/centos7.tar.gz_x000D_ Загрузить образ из tar.gz файла и установить тэг centos_repos:
_x000D_docker load -i ./centos7.tar.gz_x000D_ Загрузка Docker образа на Hub
Перед загрузкой, убедитесь, что тэг загружаемого образа имеет вид <ваш_репозиторий>/<загружаемый_образ>.
Авторизуйтесь в системе Docker. Это нужно делать один раз:
_x000D_docker login Установите новый тэг на ваш репозиторий:
_x000D_docker tag <local_image>:<tagname> <you_repo>/<you_image>:<tagname> Загрузите ваш Docker образ на Hub командой:
_x000D_docker push <you_repo>/<you_image>:<tagname> Узнать почему не запускается сервис
_x000D_docker service ps --no-trunc service_name Просмотреть логи сервиса
_x000D_docker service logs balancer_cloud_router --tail 10 -f Очистка Docker
Удалить остановленные контейнеры, а также docker cache:
_x000D_docker system prune --filter "until=24h" Удалить лишние образы
_x000D_docker system prune -a --filter "until=24h" Удаление всех образов
_x000D_docker rmi -f $(docker images -q)