PHP Laravel NGINX html css Bootstrap Python Symfony Apache Windows linux jquery Django ASP vanilla Slim vagrant docker Homestead MySQL Redis Git SVN ssh Root vim PhpStorm Pycharm sass less PHP Laravel android html css Vue Angular React NGINX html css Javascript

docker-compose常用选项讲解

原创

原创不易 ~ 转载请注明出处哦

在使用docker的过程中,发现还是有挺多坑需要踩的。我们在使用docker-compose的时候,有不少辅助选项可以帮助到我们。

例如在docker-compose up的时候,如果未加任何选项,那么默认docker将会读取的是当前文件夹下的docker-compose.yml文件。如果我们需要读取不同配置,实际上不需要每一次都修改docker-compose.yml文件,如果我们要进行实验性地操作,可以新建一个.yml配置文件,例如docker-compose-dev.yml,在下次docker-compose up的时候,我们可以加上-f选项:

$ docker-compose -f docker-compose-dev.yml up

这样一来,docker就会读取我们指定的配置文件进行docker-compose up了。


另外,docker-compose up命令并不是后台运行的,也就是说,我们可以实时看到containers的信息输出,这在本地开发的时候,实际上是比较方便的。经常性地,我们会看到docker-compose up -d这个命令,其中-d选项就是detach的意思,即我们运行完docker-compose up后,containers都是以后台进程方式运行的,也就是说,我们不能看到即时的信息输出。如果需要在这种情况下查看containers的输出,我们可以使用docker logs [service-name],例如我们在docker-compose-dev.yml中配置了一个名为eagleservice,那么我们就可以使用

$ docker logs eagle

来查看日志输出。

在以上两种up方式中,若要重启某个service,我们不需要ctrl + c来结束全部service,而只需要使用restart命令。还是举刚才的例子,假设我们的service名为eagle,那么我们可以使用

$ docker-compose -f docker-compose-dev.yml restart -t 1 eagle

这个命令来单独重启eagle服务。注意到restart-t 1的意思是1秒后重启,因为默认restart会在10秒后才重启,所以我们通常都会加上-t 1这个参数。


还有值得注意的是,如果遇到了奇怪的问题,可以试试docker-compose down然后docker-compose up --force-recreate
--force-recreate官方说明如下:

Recreate containers even if their configuration and image haven't changed.

所以如果在networks出现奇怪的问题,或者rds突然不能访问了,试试看这个命令,或许有奇效。


正在加载验证码......
请先完成验证