docker三剑客之docker-compose

前言

        docker-compose是编排容器的利器,特别是涉及多个容器的运行时,不需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,通过docker-compose,它可以轻松完成容器编排,并且提供了scale扩容功能。

安装docker-compose

       在github官网上有提供安装的方式,直接下载二进制包进行安装即可。
地址:https://github.com/docker/compose/releases/

命令如下:

然后,验证安装情况:

官网有介绍,如果你们mac或者windows用户,那么你按照了docker客户端之后,就默认安装了docker-compose。

实战练习

构建redis数据库

1,我们先看看命令行直接运行redis的方式:

2,我们下面使用compose来参考构建,我们创建一个项目文件夹redis,然后进入文件夹,在里面创建一个docker-compose.yml文件,并添下面的内容:

3,执行构建

 

 

构建wordpress博客

        前言:前面我们学会了如何使用docker-compose构建服务了,那么我们现在就来试试docker-compose编排多个服务的情况,这我们以构建wordpress为例,用到的镜像有redis和wordpress。

1,我们创建一个项目文件夹wordpress,然后进入文件夹,在里面创建一个docker-compose.yml文件,并添下面的内容,注意,模版文件中包含多个软件的时候,各个软件之间可能是有先后顺序的依赖关系的,比如,数据库需要先创建好,所以,我们要使用depends_on进行指定。

2,在同级目录下,运行下面docker-compose命令,创建我们所需的镜像和服务,然后浏览器访问http://ip:8000即可。

模板文件是使用compose的核心,涉及到的指令关键字也比较多,最好找时间好好研究下模版文件中的各个命令的写法,可以让我们的模版文件写的更加优雅。

 

docker-compose命令一览

下面列出几个时常会用到的docker-compose命令

config
用法:docker-compose config
验证compose yml文件格式是否正确,若正确则显示配置,若格式错误显示错误原因

ps
用法: docker-compose ps [options] [SERVICE…]
列出项目中目前的所有容器。
选项:
-q 只打印容器的 ID 信息

images
用法:docker-compose images
列出项目中的所有容器镜像

up
用法:docker-compose up [options] [SERVICE…]
通常使用“docker-compose up -d”自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作,在后台运行。
默认情况,如果服务容器已经存在,up 将会尝试停止容器,然后重新创建,以保证新启动的服务匹配 docker-compose.yml文件的最新内容。
如果用户不希望容器被停止并重新创建,可以添加“–no-recreate”指令,将只会启动处于停止状态的容器,而忽略已经运行的服务。
如果用户只想重新部署某个服务,可以使用 docker-compose up –no-deps -d <SERVICE_NAME> 来重新创建服务并后台停止旧服务,启动新服务,并不会影响到其所依赖的服务。
选项:
-d 在后台运行服务容器
–no-color 不使用颜色来区分不同的服务的控制台输出
–no-deps 不启动服务所链接的容器
–force-recreate 强制重新创建容器,不能与 –no-recreate 同时使用
–no-recreate 如果容器已经存在了,则不重新创建,不能与 –force-recreate 同时使用
–no-build 不自动构建缺失的服务镜像
-t, –timeout TIMEOUT 停止容器时候的超时(默认为 10 秒)

start
用法:docker-compose start [SERVICE…]
启动已经存在的服务容器。

stop
用法: docker-compose stop [options] [SERVICE…]
停止已经处于运行状态的容器,但不删除它
选项:
-t, –timeout TIMEOUT 停止容器时候的超时(默认为 10 秒

restart
用法:docker-compose restart [options] [SERVICE…]
重启项目中的服务

rm
用法:docker-compose rm [options] [SERVICE…]
删除所有(停止状态的)服务容器,推荐先执行 docker-compose stop 命令来停止容器。
选项:
-f, –force 强制直接删除,包括非停止状态的容器。尽量不要使用该选项
-v 删除容器所挂载的数据卷

logs
用法:docker-compose logs [options] [SERVICE…]
查看服务容器的输出。默认情况下,docker-compose 将对不同的服务输出使用不同的颜色来区分,可以通过 –no-color 来关闭颜色。

scale
用法:docker-compose scale [options] [SERVICE=NUM…]
设置指定服务运行的容器个数,一般在需要进行扩容的时候用到。通过 service=num 的参数来设置数量。例如:
docker-compose scale mysql=3 redis=2
将启动3个容器运行mysql服务,2个容器运行redis服务。


guolin

guolin

相信世界,向往美好,记录成长过程,分享个人心得,充实平凡生活。 网站信条:因为喜欢,所以热爱。

发表评论

电子邮件地址不会被公开。 必填项已用*标注