Список полезных команд при работе с контейнерами 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)