Each time you use docker run (using the same image or not), you're actually creating and starting a new instance of a Docker image.
A Docker image is a list of layers representing file system differences. It is used by Docker to create the base file system of your containers (these layers are read-only, allowing Docker to re-use them when you start multiple containers, making docker run really fast as well as not taking too much disk space).
Basically, when you start a container, Docker will use the layers of the image to create the file system of your container. As I told you before, it's using read-only layers from the image, so in order to store any change in the container, Docker will add an extra read-write layer on top of that when the container is started.
Every change you're making to a container is stored in this new read-write layer. If you delete the container, that layer will be deleted too, making the container non-persistent.
I recommend having a look at this section of the documentation: docs.docker.com/engine/userguide/storagedriver/im…
Siddarthan Sarumathi Pandian
Full Stack Dev at Agentdesks | Ex Hashnode | Ex Shippable | Ex Altair Engineering
Docker run always created a new container, unless you're using the host volume.
The data you had in the previous containers won't appear automatically in the new container, unless you have some kind of persistence outside it, be a volume, an external database and so on.