一、Docker的生命周期

docker compose生命周期 docker容器生命周期_docker


二、以Nginx为例子

从底层到顶层的堆叠流程

docker compose生命周期 docker容器生命周期_Docker_02


三、查看Nginx的镜像

docker compose生命周期 docker容器生命周期_docker_03


四、通过docker ps -a查看容器

发现没有启动容器

docker compose生命周期 docker容器生命周期_docker compose生命周期_04


五、启动Nginx

docker compose生命周期 docker容器生命周期_docker compose生命周期_05


docker ps查看不到容器,是因为它并没有run起来

docker compose生命周期 docker容器生命周期_docker_06

六、run Nginx
此时,容器就是在running的状态了

docker start 317b5bf3497b

七、与容器交互
登陆到容器,可交互式方式

docker exec -it 317b5bf3497b  /bin/bash

docker compose生命周期 docker容器生命周期_Docker_07


说明:容器是基于当前的操作环境的的内核态,但用户的文件系统发生了改变

八、退出容器

exit

docker compose生命周期 docker容器生命周期_Nginx_08


九、停止容器/解开容器

docker pause 317b5bf3497b
docker unpause 317b5bf3497b

停止容器后,就不能交互了

docker compose生命周期 docker容器生命周期_docker compose生命周期_09


十、在容器里创建文件夹、文件

docker compose生命周期 docker容器生命周期_Docker_10


十一、退出容器,执行stop

执行stop后,只能通过docker ps -a才能看到容器的id

docker compose生命周期 docker容器生命周期_docker compose生命周期_11


十二、恢复容器(重新启动容器)

docker start 317b5bf3497b

可以看到刚才创建的文件夹、文件还在容器中,说明暂停只是容器的一个状态,它还会保存文件,只是释放了内存和cpu

docker compose生命周期 docker容器生命周期_Docker_12


十三、另外一种停止容器方式

当容器卡顿时,发送docker stop命令容器不一定听,但docker kill 317b5bf3497b 会强制杀掉同样docker kill 文件还在

docker compose生命周期 docker容器生命周期_Nginx_13

十四、彻底的删除容器
docker rm不能删除一个正在运行的容器,但是我们可以强制删除

docker rm 317b5bf3497b
docker rm -f 317b5bf3497b

docker compose生命周期 docker容器生命周期_Docker_14


十五、再次执行docker create nginx此时创建的是另外一个容器,再次进入后已经看不到之前的文件了

docker compose生命周期 docker容器生命周期_Nginx_15


十五、想多个容器共享目录怎么办?

持久化层

十六、docker的日志查询

docker logs

docker compose生命周期 docker容器生命周期_docker_16


十七、限制容器的资源使用

1)抢cpu资源情况

docker run -d -c 4000//表示cpu的分片份额,只有在cpu资源紧张的时候会体现出来。下图时间分片比例为100倍

docker compose生命周期 docker容器生命周期_docker compose生命周期_17


2)抢内存、磁盘资源情况

docker compose生命周期 docker容器生命周期_Nginx_18


3)抢磁盘IO资源情况

docker compose生命周期 docker容器生命周期_Docker_19