docker run和start的区别说明

docker中run和start的区别

docker run 后面指定的是一个镜像

而docker start指定的是一个容器

docker run是利用镜像生成容器,并启动容器,而docker start是启动一个之前生成过的容器

尝试

而docker start是启动一个已经创建过的容器

比如我的docker里面有springboot项目的一个镜像

那么我使用docker run命令将他启动,使用docker ps 可以看到已经启动了一个springboot容器,然后我们停止它(docker stop)

再使用docker start启动它,再使用docker ps可以看到之前停止的已经启动了

[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

启动一个或多个已经停止的容器

docker start [OPTIONS] CONTAINER [CONTAINER...]
#可以根据容器的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

重启容器,不论之前是否启动或停止

docker restart[OPTIONS] CONTAINER [CONTAINER...]
#可以根据容器的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

停止一个运行中的容器

docker stop[OPTIONS] CONTAINER [CONTAINER...]
#可以根据容器的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容器将会自动启动。

(0)

相关推荐

  • Docker常用命令详解

    一. 帮助命令 1. 查看当前docker版本 docker version 2. 显示 Docker 系统信息,包括镜像和容器数 docker info 3. 查看帮助文档,类似于CentOS的Man命令 docker --help 二. 镜像命令 1. 查看本地主机上的镜像: #列出本地所有的镜像(含中间映像层) docker images -a #只显示镜像ID docker images -q #显示完整的镜像信息 docker images --no-trunc 2.搜索镜像:http

  • Docker run 命令的使用方法详解

    注意,本文基于最新的Docker 1.4文档翻译. Docker会在隔离的容器中运行进程.当运行 docker run命令时,Docker会启动一个进程,并为这个进程分配其独占的文件系统.网络资源和以此进程为根进程的进程组.在容器启动时,镜像可能已经定义了要运行的二进制文件.暴露的网络端口等,但是用户可以通过docker run命令重新定义(译者注:docker run可以控制一个容器运行时的行为,它可以覆盖docker build在构建镜像时的一些默认配置),这也是为什么run命令相比于其它命

  • 解决docker run 或者 docker restart 启动镜像就自动退出

    执行命令:docker run --name centos8 -d centos /bin/bash,通过docker ps查看正在运行中容器,找不到centos8. 通过docker ps -a查看发现,centos8容器已经处于停止状态了 [root@MiWiFi-R4A-srv server]$ docker run --name centos8 -d centos /bin/bash a770630ca865b3c3346a321a383f302ed22af9281be8482f4f4d

  • docker run的--rm选项使用说明

    在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据. 但是,对于foreground容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,因而可以在容器启动时设置--rm选项,这样在容器退出时就能够自动清理容器内部的文件系统. 示例如下: docker run --rm ba-208 等价于 docker run --rm=true ba-208 显然,--rm选项不能与-d同时使用(或者说同时使用没有意义),即只能自动清理foreground容器

  • docker run和start的区别说明

    docker中run和start的区别 docker run 后面指定的是一个镜像 而docker start指定的是一个容器 docker run是利用镜像生成容器,并启动容器,而docker start是启动一个之前生成过的容器 尝试 而docker start是启动一个已经创建过的容器 比如我的docker里面有springboot项目的一个镜像 那么我使用docker run命令将他启动,使用docker ps 可以看到已经启动了一个springboot容器,然后我们停止它(docker

  • docker中的run/cmd/entrypoint的区别详解

    Dockerfile中run.cmd和entrypoint都能够用于执行命令,下面是三者的主要用途: run命令执行命令并创建新的镜像层,通常用于安装软件包 cmd命令设置容器启动后默认执行的命令及其参数,但CMD设置的命令能够被docker run命令后面的命令行参数替换 entrypoint配置容器启动时的执行命令,不会被忽略,一定会被执行,即使运行 docker run时指定了其他命令. Shell格式和Exec格式运行命令 我们可以用下面两种格式指定run.cmd和entrypoint要

  • Docker 镜像和容器的区别详解

    最近学习Docker,被Docker 的镜像和容器搞的晕头转向,索性上网查找相关资料并整理下彻底的理解这块内容,有需要的小伙伴可以看下,少走点弯路. Docker的镜像和容器的区别 一.Docker镜像 要理解Docker镜像和Docker容器之间的区别,确实不容易. 假设Linux内核是第0层,那么无论怎么运行Docker,它都是运行于内核层之上的.这个Docker镜像,是一个只读的镜像,位于第1层,它不能被修改或不能保存状态. 一个Docker镜像可以构建于另一个Docker镜像之上,这种层

  • VBS中Run和Exec的区别

    Set ws = CreateObject("WScript.Shell") '这里创建一个对象引用,以便在以下示例代码中使用. 'Demon注:这个变量名怎么这么猥琐(WS) 语法:(常识(Demon注:常识这个词我喜欢):作为过程使用时,不要加括号,否则出现编译器错误(参数唯一或没有时加括号不会出错,但建议不要加)) 复制代码 代码如下: ws.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) [Set objExec =] ws

  • docker run起来之后执行多条命令

    最近在搞jenkins pipeline的部署工作,而在对.net core进行部署时不希望安装dotnet sdk,为了移植性更好,打算直接使用aspnetcore的docker镜像,通过docker去run它,而在这个时间出现了一个问题 docker run aspnetcore:2.0之后如果希望同时执行多个sh命令出现了问题,还非要写个脚本文件,这是大叔不喜欢的! docker run aspnetcore:2.0 ls && ls 结果是第一个ls显示的是容器里的内容,而第二个l

  • docker run启动的容器挂掉了数据怎么办

    情景描述 在某个系统中,功能性的服务使用 docker stack deploy xxx 启动,某个国产数据库的服务单独使用 docker run xxx 启动,数据库服务没有将存储的位置挂载出来: 结果客户重启了服务器-再登录到服务器重启服务的时候,发现了一个问题,之前数据库里的数据可能会消失(如果再使用 docker run 启动的话). 解决办法 尝试1 起初想的是数据肯定丢了,那就只能重新折腾一次数据了,但工作量太大了- 不过也没办法,下次再启动,把存储挂载到硬盘就好了,Orz 不过和同

  • 使用Docker run的选项以覆盖Dockerfile中的设置详解

    通常,我们首先定义Dockerfile文件,然后通过docker build命令构建得到镜像文件.然后,才能够基于镜像文件通过docker run启动一个容器的实例. 那么在启动一个容器的时候,就可以改变镜像文件中的一些参数,而镜像文件中的这些参数往往是通过Dockerfile文件定义的. 但并非Dockerfile文件中的所有定义都可以在启动容器的时候被重新定义.docker run不能覆盖的Dockerfile文件指令如下: FROM MAINTAINER RUN ADD COPY 1.覆盖

  • 如何查看docker run启动参数命令(推荐)

    通过runlike去查看一个容器的docker run启动参数 安装pip yum install -y python-pip 安装runlike pip install runlike 查看docker run参数 发布一个容器 [root@docker01 ~]# docker run -d -v /data/nginx_test2:/data_volume_test2 -v /etc/hosts:/etc/hosts -p 8080:80 --name nginx105 nginx:1.1

随机推荐