运维实战 容器部分 Docker Compose
Posted 洛冰音
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维实战 容器部分 Docker Compose相关的知识,希望对你有一定的参考价值。
运维实战 容器部分 Docker Compose
简介
一套服务架构很多时候不可能只包括一个应用, 通常包括若干个微服务, 每个微服务又可能需要部署多个实例.
每次进行业务部署都手动操作每个实例显然是不人性化且低效的.
Docker Compose
就是为了解决这个问题而出现的.
作为用Python
语言编写的一种编排服务, 它可以用于在Docker
上运行复杂应用的工具, 批量化的管理应用.
通过编写配置文件, 用户可以定义一个多容器应用并使用一条指令对其进行安装和构建.
Docker Compose
中有两个重要的概念
- 服务 (service) 一个应用的容器, 实际上可以包括若干运行相同镜像的容器实例.
- 项目 (project) 由一组关联的应用容器组成的一个完整业务单元, 在
docker-compose.yml
文件中定义.
实践
##官方方式
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
##下载阿里云提供的方式
https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/
##之后与上文相同
Docker-compose.yml
文件中可能出现以下内容,分别对应不同的需求属性
-
Image指定为镜像名称或镜像
ID
,如果镜像在本地不存在,Compose
将会尝试拉取这个镜像. -
Build指定
Dockerfile
所在文件夹的路径.Compose
将会利用它自动构建这个镜像, 然后使用这个镜像. -
Command覆盖容器启动后默认执行的命令.
-
Links链接到其它服务中的容器.
-
Ports端口映射.
-
Expose:暴露端口信息.
-
Volumes卷挂载路径设置.
更多属性查阅
举例
WebServer1:
image: nginx
volumes:
- ./WebServer1:/usr/share/nginx/html
WebServer2:
image: nginx
volumes:
- ./WebServer2:/usr/share/nginx/html
haproxy:
image: haproxy
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
links:
- WebServer1
- WebServer2
ports:
- "80:80"
expose:
- 80
- 之后运行即可, 需要注意的是
docker-compose
命令必须在项目下运行, 也就是当前目录必须要有docker-compose.yml
常用命令
build 构建或重新构建服务
kill 强制停止服务容器
logs 查看服务的输出
port 打印绑定的公共端口
ps 列出所有容器
pull 拉取服务所需镜像
rm 删除停止的服务容器
up 构建并启动容器
以上是关于运维实战 容器部分 Docker Compose的主要内容,如果未能解决你的问题,请参考以下文章