Docker高级应用之Compose

6 篇文章 0 订阅
5 篇文章 0 订阅
  • Compose介绍
  • Compose安装
    当前实验环境:
    操作系统:CentOS Linux release 7.5.1804 (Core)
    Docker版本:17.05.0-ce
    使用pip命令安装:
[root@docker ~]# pip install docker-compose

或者利用二进制文件安装

[root@docker ~]# curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@docker ~]# chmod +x /usr/local/bin/docker-compose

安装之后可以查看版本,确保安装成功

[root@docker ~]# docker-compose --version
docker-compose version 1.14.0, build c7bdf9e

可见,compose的安装非常简单。下面通过compose构建一个php服务。
新建compose目录,并进入目录

[root@docker ~]# mkdir compose
[root@docker ~]# cd compose/

创建docker-compose.yml和Dockerfile文件,内容分别如下:

[root@docker compose]# cat docker-compose.yml 
version: '3'
services:
  web:
    build: .
    ports:
      - "8888:80" 
[root@docker compose]# cat Dockerfile 
FROM centos:7
MAINTAINER seagull
RUN yum install -y httpd php php-gd php-mysql
RUN echo "<?php phpinfo()?>" > /var/www/html/index.php
CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
EXPOSE 80

启动compose,构建容器。

[root@docker compose]# docker-compose up


当显示下面内容时表明构建成功,且容器正常运行
在这里插入图片描述
新开启一个终端,输入docker up命令可以看到新开启的容器。其中compose_web是新创建的容器。

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
d6333835b70a        compose_web         "/usr/sbin/httpd -..."   5 minutes ago       Up 5 minutes        0.0.0.0:8888->80/tcp   compose_web_1
622fc7c0e1a8        mysql               "docker-entrypoint..."   3 days ago          Up 3 days           3306/tcp, 33060/tcp    figtest01_db_1
3366972d0221        nginx:v1            "nginx"                  7 days ago          Up 5 days           80/tcp                 my_nginx01

在这里插入图片描述
在浏览器输入ip:8888,即可验证PHP安装成功。
在这里插入图片描述

  • Compose原理
  • Compose常用命令
  • docker-compose.yml 配置简述
    YAML是一种标记语言很直观的数据序列化格式,可读性高。类似于XML数据描述语言,语法比XML简单的很多。
    YAML数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号括起来,hash用花括号括起
    来。
    YAML文件格式注意事项:
  1. 不支持制表符tab键缩进,需要使用空格缩进
  2. 通常开头缩进2个空格
  3. 字符后缩进1个空格,如冒号、逗号、横杆
  4. 用井号注释
  5. 如果包含特殊字符用单引号引起来
  6. 布尔值(true、false、yes、no、on、off)必须用引号括起来,这样分析器会将他们解释为字符串。
    docker-compose.yml常见命令介绍:
    在这里插入图片描述
  • Compose应用案例
    案例一:一键部署LNMP服务
    新建lnmp目录,并在该目录下新建nginx、mysql、php等目录。
[root@docker ~]# mkdir lnmp
[root@docker ~]# cd lnmp

分别在nginx、mysql、php目录下增加软件包、Dockerfile文件、配置文件等内容,其中mysql使用官方镜像,nginx和php使用Dockerfile自己构建。在lnmp目录下创建docker-compose.yml 整体目录结构如下:

[root@docker lnmp]# tree
.
├── docker-compose.yml
├── mysql
│   └── conf
│       └── my.cnf
├── nginx
│   ├── Dockerfile
│   ├── nginx-1.12.1.tar.gz
│   └── nginx.conf
└── php
    ├── Dockerfile
    ├── php-5.6.31.tar.gz
    └── php.ini

在这里插入图片描述
在docker-compose.yml目录下执行命令启动

[root@docker lnmp]# docker-compose up

在这里插入图片描述
经过长达10分钟的镜像构建,终于构建成功,如图:
在这里插入图片描述
新建一个测试文件test.php,通过浏览器可以访问:
在这里插入图片描述
本案例是根据阿良老师视频进行的实验,详细情况可访问:
http://edu.51cto.com/course/11201.html?source=so
参考链接1:https://docs.docker.com/compose/compose-file/#reference-and-guidelines
参考链接2:https://www.awaimai.com/2120.html

案例二:一键部署tomcat集群
新建tomcat目录,并在tomcat下新建下列内容,在相应文件夹下放入安装包。

[root@kolla tomcat]# ls
docker-compose.yml  mysql  nginx  tomcat  webapps
[root@kolla tomcat]# tree
.
├── docker-compose.yml
├── mysql
│   ├── conf
│   │   └── my.cnf
│   └── data
├── nginx
│   ├── Dockerfile
│   ├── nginx-1.12.1.tar.gz
│   └── nginx.conf
├── tomcat
│   ├── apache-tomcat-8.0.46.tar.gz
│   ├── Dockerfile
│   ├── jdk-8u45-linux-x64.tar.gz
│   └── server.xml
└── webapps
    └── ROOT
        └── index.jsp

6 directories, 8 files

运行容器

[root@kolla tomcat]# docker-compose up -d

在这里插入图片描述
经过几分钟的构建,镜像构建成功并成功启动容器:
在这里插入图片描述
新建的容器均为启动状态:
在这里插入图片描述
在浏览器验证:
在这里插入图片描述
案例三:模拟多节点访问网站(待完成)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值