Docker学习笔记(1)

Docker实战笔记

建立持久化的容器

自动重启容器

创建容器时使用--restart标志,就可以通知Docker完成以下操作:

从不重新启动

检测到故障时尝试重新启动

当检测到故障时,在一段预定的时间后重新开始尝试重启

不管任何条件,始终重新启动容器

Docker 针对定时尝试重新启动,采取了指数回退策略(将花在前一次等待连接尝试的时间加倍):

例如:

Docker run -d --name backoff-detector --restart always busybox date

接着在几秒钟后,使用尾随日志功能来观察回退和重新启动:

Docker logs -f backoff-detector

但是在补偿期间,容器并没有运行,容器等待重新启动的时候,仍是在重新启动的状态。在回退探测容器时,尝试运行另一个进程:

Docker exec backoff-deteor echo Just a Test

运行该命令会导致的错误,这意味着那些处于运行状态时才能做到的事情此时都无法做到,比如在容器中执行其他命令。

  1. 使用init和supervisor进程维持容器的运行状态

   init或supervisor进程,用于启动和维护其他程序状态。

在linux中,PID#1是init进程。

启动示例容器:

Docker run -d -p 80:80 --name lamp-test tutum/lamp

使用docker top命令,该容器中能看到哪些进程正运行着:

Docker top lamp-test

其中top显示的是PID值。

如需要获得该列表,运行以下exec子命令

Docker exec lamp-test ps

运行该命令时,PID列中的值会有所不同

插入PID:

Docker exec lamp-test kill <PID>

使用init或supervisor程序的一个常见代替方法是使用一个脚本。

因此可以在启动wordpress进程前,运行脚本验证和设置默认环境变量,来启动创建的wordpress容器。

可以通过覆盖容器启动脚本,例如,使用命令来查看启动脚本内容:

Docker run wordpress:4 cat /entrypoint.sh

但是会失败。将命令设置为cat/entrypoint.sh,docker容器仍会在运行该命令之前会先执行人口点命令。重新尝试可以使用--entrypoint标志来运行指定程序,并传递参数:

Docker run --entrypoint=”cat” \

  Wordpress:4 /entrypoint.sh

这里使用cat命令作为容器的执行的入口,将/entrypoint.sh作为cat命令的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@阿珂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值