Записки по использованию Docker

Список всех контейнеров:

docker ps -a

Без ключа -a покажет только запущенные.

Локальные образы:

docker images

Запустить новый контейнер интерактивно и потом удалить:

docker run --rm -it IMAGE

—rm говорит об удалении после выхода
-it интерактивно (i) к консоли (t)
-d запустить в фоне. Ключи -it и —rm убрать.
—user USER или -u USER запусть от определенного пользователя. Должен быть определен в образе.

Запустить существующий контейнер интерактивно:

docker start -ia CONTAINER

Приконнектиться к запущенному контейнеру:

docker exec -it CONTAINER /bin/bash

На самом деле запустить команду интерактивно.

Чистка докера:

Убить неактивные контейнеры:

docker ps -f status=exited -q | xargs -r docker rm

Убить образа без тегов (хвосты пересборок):

docker images -f "dangling=true" -q | xargs -r docker rmi

Убираем фильтры, меняем -q на -qa в обоих случаях и будет полная очистка. Имаджи могут цепляться за контейнеры.

Перенос образов:

docker save -o FILE IMAGE
docker load -i FILE

Создать из контейнера образ:

docker commit CONTAINER [REPOSITORY[:TAG]

Знаю, что лучше так не делать, но иногда приходится.

Скопировать в/из контейнера:

docker cp FILE CONTAINER://PATH
docker cp ./script.sh some-container://root