Docker Compose
介绍
- Compose是一个定义和管理多容器的工具,使用Python语言编写。
- 使用Compose配置文件描述多个容器应用的架构,比如使用什么镜像、数据卷、网络、映射端口等;
- 然后一条命令管理所有服务,比如启动、停止、重启等。
安装
1 | # 安装 docker compose 单机编排 |
1 | yum install pip |
- 定义容器环境
- 根据yanml文件启动容器
YAML文件格式及编写注意事项
YAML是一种标记语言很直观的数据序列化格式,可读性高。类似于XML数据描述语言,语法比XML简单的很多。
YAML数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号括起来,hash用花括号括起来。
YAML文件格式注意事项:
- 不支持制表符tab键缩进,需要使用空格缩进
- 通常开头缩进2个空格
- 字符后缩进1个空格,如冒号、逗号、横杆
- 用井号注释
- 如果包含特殊字符用单引号引起来
- 布尔值(true、false、yes、no、on、off)必须用引号括起来,这样分析器会将他们解释为字符串。
配置文件常用字段
1 | 官方文档:https://docs.docker.com/compose/compose-file |
常用命令
Docker Compose 一键部署 LNMP 网站平台
dockerfile nginx
1 | [root@Docker-2 nginx]# mkdir -p /opt/compose_lnmp/nginx/ |
1 | [root@Docker-2 compose_lnmp]# tree nginx/ |
1 | [root@Docker-2 compose_lnmp]# tree wwwroot/ |
dockerfile php
1 | [root@Docker-2 php]# vim Dockerfile |
1 | [root@Docker-2 compose_lnmp]# tree php |
1 | [root@Docker-2 compose_lnmp]# tree wwwroot/ |
mysql
- mysql 使用官方镜像
1 | mysql: |
docker-compose.yml
1 | [root@Docker-2 compose_lnmp]# vim docker-compose.yml |
编排
1 | [root@Docker-2 compose_lnmp]# docker-compose -f docker-compose.yml up -d |
部署 wordpress
- 上传 wordpress-4.7.4-zh_CN.tar
1 | [root@Docker-2 wwwroot]# tar -zxvf wordpress-4.9.4-zh_CN.tar.gz |
- 配置
1 | http://39.106.100.108:88/wordpress/ |
部署 ngixn + tomcat 集群
dockerfile tomcat
1 | [root@Docker-2 tomcat]# vim Dockerfile |
1 | [root@Docker-2 compose_nginx_tomcat]# tree tomcat/ |
nginx 动静分离
1 | [root@Docker-2 nginx]# vim Dockerfile |
1 | [root@Docker-2 compose_nginx_tomcat]# tree nginx/ |
mysql
1 | [root@Docker-2 compose_nginx_tomcat]# tree mysql/ |
docker-compose.yml
1 | [root@Docker-2 compose_nginx_tomcat]# vim docker-compose.yml |
目录结构 与 动态静态文件
1 | [root@Docker-2 opt]# tree compose_nginx_tomcat/ |
1 | [root@Docker-2 test]# cat java_test.jsp |
1 | [root@Docker-2 www]# cat mysite.html |
1 | [root@proxy ~]# wget -O /tmp/nginx.png http://nginx.org/nginx.png |
编排与测试
1 | [root@Docker-2 compose_nginx_tomcat]# docker-compose -f docker-compose.yml up -d |
1 | [root@Docker-2 compose_nginx_tomcat]# docker-compose ps |
1 | # docker-compose 命令 一定要进入 项目的目录里去执行 |
1 | # 刷新整合页面测试 两台tomcat轮询显示 |