『 云原生·Docker』Docker-compose 容器编排
Posted abcccccccccccccccode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『 云原生·Docker』Docker-compose 容器编排相关的知识,希望对你有一定的参考价值。
系列文章目录
本系列主要分为以下六大部分,正在更新中,尽请期待!
- 『 云原生·生之门』
- 『 云原生·前置知识』
- 『 云原生·Docker』
- 『 云原生·Kubernetes』
- 『 云原生·KubeSphere』
- 『 云原生·DevOps』
提示:已经更新的或正在更新的文章前面打勾了哈!
文章目录
前言
在本专栏之前的文章中,我们已经学习了Docker的一系列知识,其中Docker 建议我们每一个容器中只运行一个服务,因为 Docker 容器本身占用资源极少,所以最好是将每个服务单独的分割开来,但是我们在实战部署的时候往往需要同时部署好多个服务,难道要每个服务单独写 Dockerfile
,然后再去构建镜像、构建容器吗?
这样做太累了,所以 Docker 官方给我们提供了 docker-compose 多服务部署的工具。
一、初识Docker-compose 容器编排
Docker Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。
你需要定义一个 YAML 格式的配置文件 docker-compose.yml
,写好多个容器之间的调用关系。之后,只要一个命令,就能同时启动/关闭这些容器。
Docker Compose 可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。
Docker-Compose 解决了容器与容器之间如何管理编排的问题。
1.Docker Compose 的核心概念
Docker Compose 的核心主要是一个文件和两个要素分别是:
- 一个文件:
docker-compose.yml
文件 - 两要素:
- 服务(service)
:一个个应用容器实例,比如订单微服务、库存微服务、mysql 容器、nginx 容器或者 redis 容器。
- 工程(project)
:由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
2.Docker Compose 的使用步骤
Docker Compose 的使用步骤:
- 编写
Dockerfile
定义各个微服务应用并构建出对应的镜像文件。 - 使用
docker-compose.yml
定义一个完整业务单元,安排好整体应用中的各个容器服务。 - 最后,执行
docker-compose up
命令来启动并运行整个应用程序,完成一键部署上线。
3.Docker与Docker-Compose的区别
- docker是自动化构建镜像,并启动镜像。 docker compose是自动化编排容器。
- docker是基于
Dockerfile
得到images
,启动的时候是一个单独的container
。 - docker-compose是基于
docker-compose.yml
,通常启动的时候是一个服务,这个服务通常由多个container
共同组成,并且端口,配置等由docker-compose定义好。 - 两者都需要安装,但是要使用docker-compose,前提是必须已经安装docker。
4.Docker-Compose生命周期
由于docker-compose是建立在docker的基础上的,因此docker-compose的生命周期与docker相似。
生命周期:
- 编写
docker-compose.yml
; - 通过
build
建立服务镜像; start
启动服务;pause/unpause
暂停/恢复服务;restart
重启服务;stop
停止服务;rm
停止容器服务并强制删除;
二、安装与卸载Docker-compose
1.安装
在我们安装Compose之前,需要先安装Docker。
- 以编译好的二进制包方式安装
# 国外地址安装
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 国内地址安装(推荐)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
- 安装之后我们设置文件可执行权限
chmod 777 /usr/local/bin/docker-compose
- 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 查看Docker-compose 版本信息
docker-compose -version
2.卸载
- 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
三、Docker-compose 的常用命令
1.查看帮助
- 命令:
docker-compose -h
2.启动docker-compose 服务
- 命令:
docker-compose up
3.启动 docker-compose 服务并后台运行
- 命令:
docker-compose up -d
4.停止并删除容器、网络、卷、镜像
- 命令:
docker-compose down
5.进入容器实例内部
- 命令:
# 服务id 在 docker-compose.yml 中定义的
docker exec -it 服务id /bin/bash
6.查看容器
展示当前 docker-compose 编排过的运行的所有容器
- 命令:
docker-compose ps
展示当前 docker-compose 编排过的容器进程
- 命令:
docker-compose top
7.查看容器输出日志
- 命令:
docker-compose logs 服务id
8.检查配置
- 命令:
# 检查配置
docker-compose config
# 检查配置,有问题才有输出
docker-compose config - q
9.重启服务
- 命令:
docker-compose restart
10.启动服务
- 命令:
docker-compose start
11.停止服务
- 命令:
docker-compose stop
看看本专栏文章有哪些吧!
本系列文章目录:
- 『 云原生·生之门』
- 『 云原生·前置知识』
- 『 云原生·Docker』
- 『 云原生·Kubernetes』
- 『 云原生·KubeSphere』
- 『 云原生·DevOps』
可以看出来本系列文章将会带你从-1到1的学习云原生的,一起加油吧!
总结
Docker Compose 可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。
Docker-Compose 解决了容器与容器之间如何管理编排的问题。
以上是关于『 云原生·Docker』Docker-compose 容器编排的主要内容,如果未能解决你的问题,请参考以下文章
『 云原生·Docker』Docker-compose 容器编排