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

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

PHPSTorm - это шикарный инструмент. Он меня сильно избаловал подсветкой HTML внутри PHP строк, функциями типа "Structural Brace Matching" или своим уникальным поведением Ctrl+Z, когда отмена не происходит, если кусок кода не находится в поле видимости. Но в этой IDE есть и раздражающие вещи. Одна из них - режим LightEdit, который становится хуже с каждой версией.

Иногда я люблю поредактировать файлы прямо на боевом сервере, используя WinSCP и PHPStorm в качестве редактора. Вот только PHPStorm открывает такие файлы по умолчанию в режиме LightEdit, где не работает практически ни одна "удобная фича", есть только минимальная подсветка кода. Наконец-то, у меня дошли руки это исправить.

Я решил потестировать разные LLM-модели, которые должны "писать код за программистов". Cursor и Windsurf - это новые IDE с ИИ-помощниками на базе VSCode. Windsurf не работает в России из-за санкций, но он ничем не отличается от Cursor. Поэтому я взял Cursor, побаловался в нём и составил своё первое впечатление по основным моделям.

Gemini 2.5 Pro

Не пишет на русском, хотя понимает его - обращаться к нему на русском языке можно. Этот ИИ пытается внести слишком много изменений в код, о которых я не просил, и похоже, что он плохо понимает контекст. Он не понял, что я пишу WordPress-плагин, поэтому он использовал синтаксис PHP, но не пользовался WordPress-функциями. На меня эта модель произвела вайб "overengineered piece of shit" из-за проблем с намерениями. Ты просишь её "исправь баг", а она переписывает весь файл "на свой вкус", типа "давай я напишу всё заново, красиво, и не по теме". Спасибо, не надо.