docker run 后面指定的是一个镜像
而docker start指定的是一个容器
docker run是利用镜像生成容器,并启动容器,而docker start是启动一个之前生成过的容器
尝试
而docker start是启动一个已经创建过的容器
比如我的docker里面有springboot项目的一个镜像
那么我使用docker run命令将他启动,使用docker ps 可以看到已经启动了一个springboot容器,然后我们停止它(docker stop)
再使用docker start启动它,再使用docker ps可以看到之前停止的已经启动了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[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 ~] # |
补充:Docker 容器start | restart | stop
近期在维护Fabric网络中,遇到服务器断电,除了kafka和zookeeper的容器,其余容器都是Exited状态。
好吧,我需要重启容器
1. docker start
启动一个或多个已经停止的容器
1
|
docker start [OPTIONS] CONTAINER [CONTAINER...] |
1
2
3
4
5
6
7
8
9
10
|
#可以根据容器的Name或者ID启动容器 $ docker start ID /NAME Options: # -a 参数 连接容器并打印输出或错误 -a, --attach Attach STDOUT /STDERR and forward signals # 参数 不懂... --detach-keys string Override the key sequence for detaching a container # -i 参数 启动容器并进入交互模式 -i, --interactive Attach container's STDIN |
2. docker restart
重启容器,不论之前是否启动或停止
1
|
docker restart[OPTIONS] CONTAINER [CONTAINER...] |
1
2
3
4
5
6
|
#可以根据容器的Name或者ID重启容器 $ docker restart ID /NAME Options: # -t 参数 停止容器前等待的时间(默认10秒) -t, -- time int Seconds to wait for stop before killing the container (default 10) |
3. docker stop
停止一个运行中的容器
1
|
docker stop[OPTIONS] CONTAINER [CONTAINER...] |
1
2
3
4
5
6
|
#可以根据容器的Name或者ID停止容器 $ docker restart ID /NAME Options: # -t 参数 停止容器前等待的时间(默认10秒) -t, -- time int Seconds to wait for stop before killing it (default 10) |
有了这些命令,方便重启已经停止的容器。
另外要说一点,Fabric网络里的chaincode容器,不需要使用上述命令重启,在启动的peer节点使用query命令查询后,chaincode容器将会自动启动。
原文链接:https://blog.csdn.net/abc_123456___/article/details/100162740