前言
首先介绍一下docker-compose是什么,之前介绍Dockerfile的时候,每个应用都需要我们通过docker build去构建镜像,镜像构建成功之后还需要执行docker run指令,应用少还好,但是应用多了这样就显得繁琐了。docker-compose就是为了解决这样的情况。通过使用docker-compose,编写相应的yaml文件,进行多个dokcer应用的构建及部署
正文
-
安装docker-compose
安装docker-compose前需要安装docker,然后进行docker-compose的安装。在线安装的方式可能因为网络原因无法正常安装,在线安装方式可以访问官网,这里采取另一种安装方式,访问docker-compose的github,下载我们需要安装的二进制文件。
下载示例.png
下载完之后上传至我们的Linux服务器
# 重命名文件
mv docker-compose-Linux-x86_64 docker-compose
# 移动文件到/usr/local/bin目录下,使我们的bash命令能够索引到docker-compose命令
mv docker-compose /usr/local/bin
# 给文件添加执行权限,文件默认没有执行权限
chmod a+x /usr/local/bin/docker-compose
# 查看是否安装成功
docker-compose --version
-
docker-compose.yaml使用
安装成功之后,接下来就可以使用docker-compose进行容器编排了,docker-compose跟Dockerfile使用方法类似,也是使用yaml文件进行构建的,接下来通过案例的方式来对dokcer-compose使用进行介绍,此处的Dockerfile示例基于上篇文章.
version: '2'
services:
app:
build:
context: ./
dockerfile: Dockerfile
mem_limit: 1g
cpu_quota: 1024
labels:
- "test docker compose svc"
- "echo docker compose up"
container_name: hello
depends_on:
- redis
volumes:
- /tmp
ports:
- "8080:8080"
redis:
image: redis:6.0
container_name: redis
cpu_quota: 1000
- version 版本号,该指令必须存在
- services 指需要部署的应用,例如:app,redis
- build 需要构建的Dockerfile文件路径
- mem_limit 内存使用限制
- cpu_quota cpu使用限制,默认为1000
- labels 对构建的容器进行备注标签说明
- container_name 构建的容器名称
- depends_on 该容器启动需要依赖某个容器,需要等到依赖的容器构建完成之后才能构建,可以依赖多个
- volumes 容器的保存卷
- ports 映射到dokcer容器端口
- image 需要拉取的镜像名称
docker-compose里面的yaml指令可以覆盖Dokcerfile初始化指令,例如ENTRYPOINT命令可以覆盖Dockerfile定义的ENTRYPOINT命令。更多使用大家可以自己去发掘。使用并不复杂。准备就绪之后就可以使用docker-compose命令开始构建应用了
# 该命令会从当前目录去查找对应的docker-compose.yaml文件来构建
docker-compose up
构建示例.png
容器会根据depends_on命令按顺序进行构建。成功启动之后就可以访问我们的应用了
# 查看创建的容器
docker-compose ps
-
docker-compose常用命令介绍
- docker-compose images 查看镜像
- docker-compose ps 查看容器
- docker-compose logs 服务名称
- docker-compose down 停止服务
- docker-compose exec 进入容器
- docker-compose scale 指定服务运行的容器个数
它的命令跟dokcer差不多.更多指令可以通过docker-compose --help去查看
总结
这里就把docker-compose的使用介绍的差不多了,compose也好,Dockerfile也好,用起来并不复杂,只有实践才是真正掌握。不要嫌麻烦,一定要多多动手实践。
网友评论