zoukankan      html  css  js  c++  java
  • 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看是否成功了!

     
  • 相关阅读:
    安装VMware Tools
    屏幕分辨率
    常用的几种进程通信方式的比较(转载)
    情绪低落
    mvc中validateinput属性在asp.net4中不工作
    读取 XML 数据时,超出最大字符串内容长度配额 (8192)
    excel检测到xls 是sylk文件 解决
    简化自己的一个工程,共享给大家:Silverlight 做的Link Map
    (转)WCF/Silverlight 相关总结
    DOM节点方法介绍
  • 原文地址:https://www.cnblogs.com/codessuperman/p/10846710.html
Copyright © 2011-2022 走看看