Explanation of the difference between docker run and start

  • 2021-10-25 00:09:38
  • OfStack

Differences between run and start in docker

docker run is followed by a mirror

docker start specifies one container

docker run generates a container with a mirror image and starts the container, while docker start starts a previously generated container

Try

docker start is to start a container that has already been created

For example, my docker has a mirror image of springboot project

Then I start it with the docker run command, and with docker ps you can see that an springboot container has been started, and then we stop it (docker stop)

Use docker start to start it again, and then use docker ps to see that the previously stopped one has started


[root@localhost ~]# docker images
REPOSITORY     TAG     IMAGE ID   CREATED    SIZE
springbootdocker    latest    5fe8370f7f83  25 hours ago  677 MB
daocloud.io/rabbitmq   3-management  1d0a5c8a8d4e  4 weeks ago   177 MB
daocloud.io/library/tomcat latest    89481b5d9082  7 weeks ago   506 MB
daocloud.io/library/mysql 5.5     d404d78aa797  3 months ago  205 MB
daocloud.io/library/java  latest    d23bdf5b1b1b  2 years ago   643 MB
docker.io/java    8     d23bdf5b1b1b  2 years ago   643 MB
[root@localhost ~]# docker run --name springboot -p 8080:8080 -d 5f
dd100a4c60a7a6606244873bc61a8a6f419361ab78fcd038d4baef3f38f05157
[root@localhost ~]# docker ps
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS     NAMES
dd100a4c60a7  5f     "java -Djava.secur..." 19 seconds ago  Up 18 seconds  0.0.0.0:8080->8080/tcp springboot
[root@localhost ~]# docker stop dd
dd
[root@localhost ~]# docker ps -a
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS                        NAMES
dd100a4c60a7  5f     "java -Djava.secur..." 39 seconds ago  Exited (143) 3 seconds ago                          springboot
f3b181616dac  1d0a5c8a8d4e  "docker-entrypoint..." 3 weeks ago   Exited (255) 2 weeks ago  4369/tcp, 5671-5672/tcp, 0.0.0.0:5762->5762/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp myrabbit0
ea0a9cb0fe2f  89481b5d9082  "catalina.sh run"  4 weeks ago   Exited (129) 4 weeks ago                          clever_leakey
[root@localhost ~]# docker start dd
dd
[root@localhost ~]# docker ps
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS     NAMES
dd100a4c60a7  5f     "java -Djava.secur..." About a minute ago Up 2 seconds  0.0.0.0:8080->8080/tcp springboot
[root@localhost ~]# 

Supplement: Docker container start restart stop

Recently, during the maintenance of Fabric network, the server was powered off, and all the containers except kafka and zookeeper were in Exited state.

Okay, I need to restart the container

1. docker start

Start one or more stopped containers


docker start [OPTIONS] CONTAINER [CONTAINER...]

# Can be based on the container's Name Or ID Startup container 
$ docker start ID/NAME

Options:
# -a  Parameter            Connect the container and print the output or error 
 -a, --attach        Attach STDOUT/STDERR and forward signals 
#   Parameter            Don't understand ...
   --detach-keys string  Override the key sequence for detaching a container
# -i  Parameter            Start the container and enter interactive mode 
 -i, --interactive     Attach container's STDIN

2. docker restart

Restart the container, whether it was started or stopped before


docker restart[OPTIONS] CONTAINER [CONTAINER...]

# Can be based on the container's Name Or ID Restart the container 
$ docker restart ID/NAME

Options:
# -t  Parameter       Time to wait before stopping the container ( Default 10 Seconds )
 -t, --time int  Seconds to wait for stop before killing the container (default 10)

3. docker stop

Stop 1 running container


docker stop[OPTIONS] CONTAINER [CONTAINER...]

# Can be based on the container's Name Or ID Stop container 
$ docker restart ID/NAME

Options:
# -t  Parameter       Time to wait before stopping the container ( Default 10 Seconds )
 -t, --time int  Seconds to wait for stop before killing it (default 10)

With these commands, it is convenient to restart the stopped container.

In addition, the chaincode container in the Fabric network does not need to be restarted with the above command. After the started peer node queries with the query command, the chaincode container will start automatically.


Related articles: