Docker Compose学习

什么是Docker Compose

Docker Compose 是Docker 官方编排的项目之一 负责快速的部署分布式应用.

是Docker官方的开源项目,负责实现对Docker 容器集群的快速编排。

Compose 中有两个重要的概念:

  • 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。

Compose 项目由 Python 编写,

实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。

Docker Compose 安装与卸载

Compose 支持LInux,macOS,Windows 10三大平台

Compose 可以通过 Python 的包管理工具 pip 进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在 Docker 容器中运行。

前两种方式是传统方式,适合本地环境下安装使用;最后一种方式则不破坏系统环境,更适合云计算场景。

Docker for MacDocker for Windows 自带 docker-compose 二进制文件,安装 Docker 之后可以直接使用。

1.Linux下安装Docker Compose

github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

------注意  此步骤需要让

/usr/local/bin/docker-compose  docker-compose 拥有可执行权限
所以需要执行如下的命令
sudo chmod 777 /usr/local/bin/docker-compose


2.新建一个文件夹

3.创建Docker file 文件:

 echo ""> Dockerfile

4.编辑Dockerfile

vim Dockerfile

FROM tomcat:latest
ADD . /usr/local/tomcat/webapps/ROOT
#WORKDIR /code
#RUN pip install redis flask
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

======= 需要了解的是

FROM 这里指的是基础镜像  也就说我们要创建这个容器所需要的镜像  我们这里要跑jsp页面  所以这里镜像用tomcat

ADD  复制文件到此目录下  比如我 /usr/local/tomcat/webapps/ROOT就是将我我的jsp页面复制到我docker 容器里面的tomcat的ROOT页面下,以便后面请求这个页面

#WORKDIR /code  这个可以不写#RUN pip install redis flask

CMD //容器的启动命令 这里启动tomcat 所有执行tomcat  bin目录底下的catalina.sh

 

到这里Dockfile就配置好了,接下我们创建docker-compose.yml文件

vim docker-compose.yml 里面插入如下内容

 

version: '3'
services:
  web:
    build: .
    ports:
     - "8889:8080"

  redis:
    image: "redis:alpine"

这里注意的是ports  其余目前粘贴辅助就好了

ports: - "8889:8080" 前面是自己设定的端口号  不要和自己端口重复就好   后面是映射到宿主机的端口 一般不用修改

 

然后再新建一个jsp文件

jsp文件自己可以自己写,也可以用我的

Count.jsp

   <%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="javax.servlet.*" %>
<html>
<head>
<title>网站计数器</title>
</head>
<body>
   <%!
    synchronized void countPeople()
    {  // 串行化计数函数
        ServletContext application=((HttpServlet)(this)).getServletContext();
        Integer number=(Integer)application.getAttribute("Count");
        if(number==null)
        {  // 如果是第1个访问本站
            number=new Integer(1);
            application.setAttribute("Count", number);
        }
        else
        {
            number=new Integer(number.intValue()+1);
            application.setAttribute("Count",number);
        }
    }
   %>
   <%
            if(session.isNew())
    {  // 如果是一个新的会话
        out.println("是一个新会话!");
        countPeople();
    }
    Integer yourNumber=(Integer)application.getAttribute("Count");
      out.println(yourNumber);
   %>
   <p>欢迎访问本站,你是第
            <%=yourNumber %>
    个访问用户。
</body>
</html>

 

这样就已经创建我们需要的东西了

接下来我们创建镜像(注意最好在当前目录下 也就是装这些文件的目录)

docker build . -t  testjsp:6.6.66  //这里testjsp可以随意命名,后面版本号也一样
 镜像创建成功后我们就执行up命令

docker-compose up //这里可以设置一个-d参数让其后台运行

再执行  tail  -f /dev/null 确保其可以一直留在后台

到这里就可以输入自己虚拟机或者云主机ip加端口号和xxx.jsp看是否成功了!

 
posted @ 2019-05-10 21:16  loveHelloJava  阅读(137)  评论(0编辑  收藏  举报