Почему не будет , будет же. При i > 2. Инкремент выполняется после того как выполняется тело цикла. Вставьте console.log(" ", k); внутри цикла до и после if и выполните.
BorLaze, это понятно. Если записей много, то да, лучше двумя апдейтами. Только в клиенте тогда надо два айдишника хранить и не факт, что старый активный действительно активный.
Искатель, EXPOSE только указывает, что в контейнере кто то слушает на порту 3000, но сам порт при этом не пробрасывается по умолчанию на ружу. Только если специально указать параметром "-p"
Вот выдержка из документации
The EXPOSE instruction does not actually publish the port. It functions as a type of documentation between the person who builds the image and the person who runs the container
Можно конечно поменять конфигурацию rails, что бы он внутри контейнера слушал на другом порту, но обычно это особой роли не играет. И для этого можно создать свой Dockerfile, унаследованный от asux/rails в котором ты заменишь конфигурационный файл rails. И уже от своего образа будешь создавать контейнеры.
Но тебе все равно придется указать docker run -p 6666:2000. Иначе никто не сможет достучаться до сервиса.
Для внешнего наблюдателя неважно на каком порту слушает сервис внутри контейнера, важен порт на который проброшен порт 3000. И это указывается параметром -p 6666:3000 к примеру.