我们来继续学习快速创建和启动容器~
docker run快速创建容器
相当于docker container create … + docker container start …
# -d 后台启动
docker run -d test
容器的四种状态
我们先来看看有什么容器状态
Create状态
表示容器处于创建状态,但是还没有运行
Up状态
表示容器处于运行状态,服务是正常运行的
Paused状态
容器处于暂停状态,停止对外服务。有点类似于虚拟机的”挂起”
Exited状态
容器处于退出状态,服务停止运行
假如我们的容器出现的问题 我们该怎么排查那~ 能不能查看容器的日志甚至进入容器进行根详细的查看哪?
查看容器日志
#查看日志信息
docker container logs -f test
#查看5分钟内的日志信息
docker container logs -f –since 5m test
# 查看5分钟之前的日志
docker container logs -f –until 5m test
进入容器内部
docker container exec -i -t test sh
#进入后可以进行修改容器内部的内容#-i 表示交互模式
#-t 为容器分配一个伪终端
容器常用的其他参数
给容器传递环境变量 -e
docker container run -e SCHOOL=cqxy -e CLASS=jk -d –name test nginx
#进入容器后使用echo $SCHOOL继续查看
给容器指定工作目录 -w
docker container run -w /usr/share/nginx/html -d –name test
容器的启动命令
cmd命令
cmd启动命令是可以被修改的
创建三个容器 分别修改启动命令进行观察
docker run –name t1 -id alpine
docker run –name t2 -d alpine sleep 10
docker run –name t3 -d alpine tail -f /etc/hosts#docker ps -a 查看容器状态 (十秒前)
5188b3e91d63 alpine “tail -f /etc/hosts” 7 seconds ago Up 7 seconds t3
1861841a690c alpine “sleep 10” 10 seconds ago Up 10 seconds t2
c3af1cb8b060 alpine “/bin/sh” 10 seconds ago Up 10 seconds t1#docker ps -a 查看容器状态 (十秒后)
5188b3e91d63 alpine “tail -f /etc/hosts” About a minute ago Up About a minute t3
1861841a690c alpine “sleep 10” About a minute ago Exited (0) 56 seconds ago t2
c3af1cb8b060 alpine “/bin/sh” About a minute ago Up About a minute t1
发现容器停止运行了 (因为容器运行的条件是拥有一个长时间运行的进程或守护程序 睡眠并没有阻塞t2容器 所以t2退出了运行)
容器的重启策略
always:
只要容器退出,始终重启容器。no:
只要容器退出,则使用不重启容器,默认就是这种模式。on-failure[:max]
当容器异常退出时,就会触发重启,可以指定重启的次数,若不指定次数,则等效于”always”。unless-stopped:
在重启docke服务前,若容器处于Up状态,则始终会启动容器,若容器处于Exited状态,则使用不重启容器。
容器的其他内容将在后边继续展开~