一、什么是Container

  1. Container 通过Image创建( copy )
  2. ContainerImage layer之上建立一个Container layer (可读写)
  3. 类比面向对象:类和实例
  4. Image负责app的存储和分发, Container负责运行app

当我们执行 docker run hhcycj/hello-world 时,就会自动生成一个Container并运行它,
执行完输出后,立即运行结束。如果不想立即结束可以指定后台运行,或者交互运行


二、Container 的基本使用

查看当前运行的容器(Container)

$ docker container ls

查看所有容器

$ docker container ls -a

立即执行容器

$ docker run ubuntu:14.04  # 创建一个Container,并执行/bin/bash后立即退出

$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
353fa73164ad        ubuntu:14.04        "/bin/bash"         33 seconds ago      Exited (0) 30 seconds ago                       hungry_heyrovsky

交互式(interactive)运行容器的方法

-it:创建一个Container,以交互式运行

[vagrant@localhost ~]$ docker run -it ubuntu:14.04    # 交互式运行,相当于直接进入这个Container中
root@b85cde8b2714:/#

可以看到多了一个 statusup 状态的

$ docker container ls -a   # 新建一个命令行窗口运行此命令
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
b85cde8b2714        ubuntu:14.04        "/bin/bash"         14 minutes ago      Up 14 minutes                                   vibrant_colden
353fa73164ad        ubuntu:14.04        "/bin/bash"         25 minutes ago      Exited (0) 25 minutes ago                       hungry_heyrovsky

想退出交互运行,直接执行 exit 命令即可

运行的容器相当于是是在Image上加了一层(Layer),这个层是可读可写的,
也就是可以增、删、改等操作