1. Команды docker

Команды docker

Все команды docker надо выполнять от root пользователя или через sudo
Через символ #написан комментарий

Проверка статуса докера и контейнеров:

sudo service docker status     #статус службы докера (смотрим запущен ли докер)

docker ps                                 #покажет запущенные докер-контейнеры
docker ps -a                            #покажет все докер-контейнеры

Удаление контейнеров:
docker rm “Names or ID”         #удаляет контейнер докера (можно вписать первые буквы и табом дописать остальные)
docker rm $(docker ps -a -q) #удаляет все контейнеры докера -q передает их ID

Просмотр и удаление образов:
docker images                          #показывает имеющиеся образы (скачанные)
docker rmi “Names or ID”        #удаляет образ докера (можно вписать первые буквы и табом дописать остальные)


Создание/скачивание и запуск контейнеров
:
sudo docker run “NameImage”                                #создать и запустить контейнер
sudo docker run —rm “NameImage”                       #создать и запустить контейнер, удалив при выходе
sudo docker run –-name NameCont “NameImage”  #создать и запустить контейнер, с именем NameCont
sudo docker run –d “NameImage”                             #создать и запустить контейнер в фоновом режиме
sudo docker run -d —rm –-name NameCont “NameImage”  #создать и запустить контейнер в фоновом режиме, с именем NameCont и удалить после остановки

Примеры на запуск контейнеров:
sudo docker run hello-world           #скачать (если нет) и запустить контейнер hello-world
sudo docker run -d hello-world      #скачать (если нет) и запустить контейнер hello-world в detached mode    (в фоновом режиме)

Часть контейнеров после запуска запускает bash например:
sudo docker run ubuntu echo “Hello from Docker” #запускаем ubuntu и bash c echo “Hello from Docker”

 

Запуск и остановка контейнера:
Для создания и запуска контейнера можно использовать команду run, но при повторном запуске она создаст еще 1 контейнер (или выдаст ошибку если совпадут имена), разумнее запускать ранее созданный контейнер.
(примечание: При команде start новый контейнер не создается)
docker start “ID”                         #запускает ранее сформированный контейнер докера (можно вписать первые буквы id).
docker stop “Names or ID”         #останавливает контейнер докера (можно вписать первые буквы id).
docker pause “Names or ID”      #останавливает работу контейнера
docker unpause “Names or ID”  #восстанавливает работу контейнера

docker kill “Names or ID”  #убивает процесс контейнера (удобно если pause/stop очень длительные)

Скачать docker образ требуемой версии:
docker pull alpine:3.15.6 #скачать alpine версии 3.15.6

Без указания версии скачивается и/или запускается последняя.
Версии можно посмотреть на https://hub.docker.com (подменю теги) например https://hub.docker.com/_/alpine/tags

Сервисные команды Docker:
docker inspect “ID”                  #выводит подробную информацию о том как собирался и какие настройки у контейнера
docker inspect “ID” | grep IP   #можно отфильтровать например только информацию по IP
docker stats “ID”                     #получает информацию о затрачиваемых ресурсах на процесс
docker stats $(docker ps -q)  #получает информацию о затрачиваемых ресурсах на каждый процесс
docker logs “ID”                       #показывает логи контейнера
docker logs -f “ID”                   #показывает логи контейнера в реальном времени


Можно работать внутри docker-контейнера как-будто это обычная операционная система:

docker exec -it “Names or ID”  /bin/bash #Запустить /bin/bash внутри докер-контейнера и работать в нем в интерактивном режиме (-it), можно выполнить для запущенного контейнера
Примечание: Данные НЕ сохраняются!!! т.е. при перезапуске контейнера будет потеряно все созданное – надо использовать volumes

Выйти из контейнера можно командой «exit» или «ctrl + d»

Быстро удалить все файлы, связанные с докерами и очистить место:
docker system prune -a —volumes      #удалить все файлы докера (образы и остановленные контейнеры) + volumes
docker volume rm $(docker volume ls -f dangling=true -q) # удалить контейнеры (иногда они не очищаются)

 

Работа с портами:
docker run -p 80:80 “Names or ID”                        #Проброс портов внешний:внутренний
docker run -p 80:80 -p 8080:8080  “Names or ID” #Проброс портов внешний:внутренний для 2х портов
docker run -P  “Names or ID” #Проброс случайных портов внешний:внутренний (если указаны в EXPOSE -см. dockerfile )

 

Напоминалки:
sudo netstat -tulpen – посмотреть открытые порты
ip a – узнать ip адреса

Узнать необходимые порты для докер-контейнера можно внизу страницы с описанием контейнера

1 комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *