В части 2 вы контейнеризировали приложение todo
.
В этой части вы обновите изображение приложения и контейнера. Вы также узнаете, как остановить и извлечь контейнер.
В приведенных ниже шагах вы измените “пустой текст”, когда у вас нет элементов списка задач, на “У вас еще нет элементов списка задач! Добавьте один выше!”
1. В src/static/js/app.js
файл, обновите строку 56, чтобы использовать новый пустой текст.
...
- <p className="text-center">No items yet! Add one above!</p>
+ <p className="text-center">You have no todo items yet! Add one above!</p>
...
2. Соберите свою обновленную версию образа, используя ту же команду сборки docker
, которую вы использовали в части 2.
docker build -t getting-started .
3. Запустите новый контейнер, используя обновленный код.
ocker run -dp 3000:3000 getting-started
Вероятно, вы заметили ошибку (идентификаторы будут другими):
docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_burnell
(bb242b2ca4d67eba76e79474fb36bb5125708ebdabd7f45c8eaf16caaabde9dd): Bind for 0.0.0.0:3000 failed: port is already allocated.
Ошибка произошла из-за того, что вы не можете запустить новый контейнер, пока ваш старый контейнер все еще запущен. Причина в том, что старый контейнер уже использует порт 3000 хоста, и только один процесс на компьютере (включая контейнеры) может прослушивать определенный порт. Чтобы исправить это, вам нужно удалить старый контейнер.
Чтобы извлечь контейнер, вам сначала нужно остановить его. Как только он остановится, вы можете удалить его. Вы можете удалить старый контейнер с помощью CLI
или графического интерфейса Docker Desktop
. Выберите тот вариант, который вам удобнее.
1. Получите идентификатор контейнера с помощью команды docker ps
.
docker ps
2. Используйте команду docker stop
, чтобы остановить контейнер. Замените
docker stop <the-container-id>
3. Как только контейнер остановится, вы можете удалить его с помощью команды docker rm
.
Примечание
Вы можете остановить и удалить контейнер одной командой, добавив флагforce
в командуdocker rm
. Например:docker rm -f <the-container-id>
1. Теперь запустите свое обновленное приложение с помощью команды docker run
.
docker run -dp 3000:3000 getting-started
2. Обновите свой браузер на http://localhost:3000
и вы должны увидеть свой обновленный текст подсказки.
Хотя вы смогли создать обновление, были две вещи, которые вы, возможно, заметили:
Все существующие элементы в вашем списке дел исчезли! Это не очень хорошее приложение! Вы скоро это исправите.
Для такого небольшого изменения потребовалось много шагов. В следующем разделе вы узнаете, как просматривать обновления кода без необходимости перестраивать и запускать новый контейнер каждый раз, когда вы вносите изменения.
Прежде чем говорить о постоянстве, вы увидите, как поделиться своим изображением с другими.
Далее вы внесете изменения в свое приложение и узнаете, как обновить запущенное приложение новым изображением. По пути вы узнаете несколько других полезных команд.