容器编排工具Docker Compose
Docker Compose概述
Docker Compose 介绍
Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用
Compose文件来配置应用程序的服务。然后,使用单个命令,您可以从配置中创建并启动所有服务。
Compose非常适合开发,测试和登台环境以及CI工作流程。
1)官方文档
-
Docker的网站上提供了完整的文档。
-
Compose的代码存储库位于GitHub上。
2)使用Compose基本上是一个三步过程
-
定义您的应用程序环境,Dockerfile以便可以在任何地方进行复制。
-
定义构成应用程序的服务,docker-compose.yml以便它们可以在隔离环境中一起运行。
-
最后,运行docker-compose up和Compose将启动并运行整个应用程序。
3)一个docker-compose.yml文件案例
4)Compose具有管理应用程序整个生命周期的命令:
-
启动,停止和重建服务
-
查看正在运行的服务的状态
-
流式传输运行服务的日志输出
-
在服务上运行一次性命令
Docker Compose安装
安装条件
1)前提
Docker Compose依靠Docker Engine进行任何有意义的工作,因此请确保您已在本地或远程安装
Docker Engine,具体取决于您的设置。
要以非root用户身份运行Compose,请参阅以非root用户身份管理Docker。
2)安装系统(主要讲linux、pip安装)
-
Linux
-
Mac
-
Windows
-
备用安装选项(使用pip安装/安装为容器)
在Linux系统上安装Compose
二进制包安装
1)下载安装
在gitlabhttps://github.com/docker/compose/releases上查询适合自己的版本
这里下载的是1.23.2版本
[root@docker1 ~]# curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
2)添加执行权限
[root@docker1 ~]# chmod +x /usr/local/bin/docker-compose
3)安装完成,查询版本
[root@docker1 ~]# docker-compose --version
docker-compose version 1.23.2, build 1110ad01
Docker Compose 卸载
[root@docker1 ~]# rm /usr/local/bin/docker-compose
rm: remove regular file ‘/usr/local/bin/docker-compose’ y
Docker Compose运用演示
Tomcat:
1、compose 准备
1)创建 compose 工作目录
[root@docker1 ~]# mkdir composetest
[root@docker1 ~]# cd composetest/
2)创建docker-compose.yml项目目录中调用的文件
[root@docker1 composetest]# vim tomcat.yml
version: ‘3.1’
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 88:8080
volumes:
- /data/tomcat/webapps:/usr/local/tomcat/webapps
environment:
TZ: Asia/Shanghai
3)在项目目录中,启动应用程序docker-compose up
[root@docker1 composetest]# docker-compose up
4)查看端口是否正常监听
[root@docker1 composetest]# netstat -lntup | grep 88
[root@docker1 composetest]# docker ps
5)通过windows浏览器访问
//如图所示出现错误,根据提示找不到资源,可能是没有默认主页导致的
5)编写首页文件
[root@docker1 composetest]# vim /data/tomcat/webapps/index.jsp
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
Hello World!
[root@docker1 webapps]# mkdir test
[root@docker1 webapps]# mv index.jsp test/