新手请教,我的理解是image是一个个container(里面有例如OS,数据库等应用的image),然后通过命令把container变成image,安装了docker之后,想要安装一个ubuntu的image,顺序是不是要先创建一个container,然后跑这么一个image,还是直接跑docker hub上下载的ubuntu的image之后,直接就会生成一个container,一个image(通过docker ps,docker images来查看)。
docker安装好了之后,直接docker run hello-world,docekr ps显示没有container,docker images 显示这么一个image,docker info显示container:1,这里又有一个container,这是为什么,两处有什么不同吗?

解决方案 »

  1.   

    问题好多,我梳理一下:
    问题一:Image与Container之间的联系。
    镜像的概念更多偏向于一个环境包,这个环境包可以移动到任意的Docker平台中去运行;而容器就是你运行环境包的实例;你可以针对这个环境包运行N个实例。
    问题二:为什么Docker info显示有一个容器;而docker ps确看不到。
    答:“docker ps”默认只会显示正在运行的容器,如果你要看所有的则需要使用“docker ps -a”;"docker info"中的数量显示的是容器总数。
    问题三:镜像与容器的先后顺序。
    当然是先有镜像再有实例了,虽然创建镜像可以参考某个容器,但是标准的做法是先制作镜像然后再跑容器。
      

  2.   

    container是images的表现形式。
      

  3.   

    镜像,跟你装操作系统的iso镜像一个概念。
    容器,就是基于这个镜像启动的操作系统。
    一个镜像,可以用来在各种地方启动任意多个容器,也就是一个镜像可以装很多个操作系统了。
    当然,镜像,不一定是操作系统的镜像,也可能是软件的镜像。等你以后明白了,你就知道我这解释也是不完全对的。但是,你可以先这么理解。
    其实,你可以先不用理解,先正确的会用就行。然后再回头看概念和理论,就一下明白了。