Показать текущие запущенные контейнеры:
docker ps
Показать все контейнеры (включая остановленные):
docker ps -a
Запуск, остановка и прочее:
docker start <container_id_or_name>
docker stop <container_id_or_name>
docker restart <container_id_or_name>
# Запустить контейнер с параметрами (создать и запустить):
docker run [options] image_name
Удаление:
docker rm <container_id_or_name>
# Удалить запущенный контейнер (через остановку):
docker rm -f <container_id_or_name>
# Удаление образа:
docker rmi hello-world
Перекомпилировать и перезапустить сервисы:
docker compose up -d --build
Остановить все сервисы:
docker compose down
Чтобы пересобрать контейнер, а не просто перезапустить:
docker compose down
docker compose up -d
Посмотреть логи:
docker logs n8n-n8n-1 --tail 100
Посмотреть список файлов:
docker exec -it n8n-n8n-1 ls -la /home/node
Запустить полноценный shell в контейнере:
docker exec -it n8n-n8n-1 /bin/bash
Если bash не установлен:
docker exec -it n8n-n8n-1 /bin/sh
После того как попал в shell, можно посмотреть пользователей в контейнере:
cat /etc/passwd
Иногда это нужно, когда нет доступа у внутреннего пользователя к внешней папке, где должны храниться данные. При этом в логах может выдаваться ошибка типа Error: Command "start" not found. В таком случае внутри контейнера надо посмотреть id юзера, потом выйти и под dockeruser выполнить:
sudo chown -R 1000:1000 ~/n8n/n8n_data
Также есть способ посмотреть юзеров не входя в контейнер:
docker image inspect n8nio/n8n:latest | grep -A 5 '"User"'
Перезагрузить только один контейнер:
docker compose stop n8n
docker compose up -d n8n