1. 容器进程

  1. 进入容器内部,需要输入命令 docker exec -it {容器id/容器名} /bin/bash ;查看容器内部的进程,输入命令 ps -ef ,可以观测到:

    1. PID USER TIME COMMAND
    2. 1 root 0:00 /bin/bash
    3. 2 root 0:00 ps -ef

    看起来有两个进程在运行,其实pid为1的进程是容器被告知要运行的bash shell;第二个进程是 ps -ef 产生的,这是个临时进程,在输出后进程结束就退出了。也就是说,当前只运行了一个进程: /bin/bash 。因此,可以通过退出唯一的进程/bin/bash来退出容器(如果容器不运行任何进程则无法存在)。

  2. 通过ctrl-pq组合键则退出容器而不终止容器。

    2. 容器生命周期

  3. 容器的持久化是指,容器只有在存在的前提之下,才有容器持久化。用命令 docker ps 查看容器时能看到的才是容器存在的前提,再在容器内部修改内容,不管容器是运行在什么状态,只要容器仍存在,则容器有持久化功能。

  4. 不可能通过容器持久化,反作用到镜像。因为容器是根据镜像生成的,如果容器修改内容,且没有生成新的镜像,是不可能将修改的内容作用到镜像的。也就是说,启动容器,修改容器内容,销毁容器,则内容消失。
  5. 卷(volume)才是容器中存储持久化数据的首选方法,卷能映射物理机的目录到容器中,但是销毁容器时,并不会删除物理机的目录,因此再次创建容器后,能看到容器中存在该目录。

    3. 查看容器详情

  6. 使用命令 docker image inspect {镜像id} 来查看镜像的详细情况。