--- title: "Persist the DB" keywords: get started, setup, orientation, quickstart, intro, concepts, containers, docker desktop description: Making your DB persistent in your application --- In case you didn't notice, your todo list is empty every single time you launch the container. Why is this? In this part, you'll dive into how the container is working. ## The container's filesystem When a container runs, it uses the various layers from an image for its filesystem. Each container also gets its own "scratch space" to create/update/remove files. Any changes won't be seen in another container, even if they're using the same image. ### See this in practice To see this in action, you're going to start two containers and create a file in each. What you'll see is that the files created in one container aren't available in another. > **Note** > > If you use Windows and want to use Git Bash to run Docker commands, see [Working with Git Bash](../desktop/troubleshoot/topics.md#working-with-git-bash) for syntax differences. 1. Start an `ubuntu` container that will create a file named `/data.txt` with a random number between 1 and 10000. ```console $ docker run -d ubuntu bash -c "shuf -i 1-10000 -n 1 -o /data.txt && tail -f /dev/null" ``` In case you're curious about the command, you're starting a bash shell and invoking two commands (why you have the `&&`). The first portion picks a single random number and writes it to `/data.txt`. The second command is simply watching a file to keep the container running. 2. Validate that you can see the output by accessing the terminal in the container. To do so, you can use the CLI or Docker Desktop's graphical interface.