--- title: "Update the application" keywords: get started, setup, orientation, quickstart, intro, concepts, containers, docker desktop description: Making changes to our example learning application --- In [part 2](./02_our_app.md), you containerized a todo application. In this part, you will update the application and container image. You will also learn how to stop and remove a container. ## Update the source code In the steps below, you will change the "empty text" when you don't have any todo list items to "You have no todo items yet! Add one above!" 1. In the `src/static/js/app.js` file, update line 56 to use the new empty text. ```diff ... -
No items yet! Add one above!
+You have no todo items yet! Add one above!
... ``` 2. Build your updated version of the image, using the same `docker build` command you used in [part 2](./02_our_app.md/#build-the-apps-container-image){:target="_blank" rel="noopener" class="_"}. ```console $ docker build -t getting-started . ``` 3. Start a new container using the updated code. ```console $ docker run -dp 3000:3000 getting-started ``` You probably saw an error like this (the IDs will be different): ```console 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. ``` The error occurred because you aren't able to start the new container while your old container is still running. The reason is that the old container is already using the host's port 3000 and only one process on the machine (containers included) can listen to a specific port. To fix this, you need to remove the old container. ## Remove the old container To remove a container, you first need to stop it. Once it has stopped, you can remove it. You can remove the old container using the CLI or Docker Desktop's graphical interface. Choose the option that you're most comfortable with.