• Docker学习笔记5 -- Docker-compose


    1.Docker-Compose

    Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!

    1.1.初识DockerCompose

    Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下:

    version: "3.8"
     services:
      mysql:
        image: mysql:5.7.25
        environment:
         MYSQL_ROOT_PASSWORD: 123 
        volumes:
         - "/tmp/mysql/data:/var/lib/mysql"
         - "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
      web:
        build: .
        ports:
         - "8090:8090"
    

    上面的Compose文件就描述一个项目,其中包含两个容器:

    • mysql:一个基于mysql:5.7.25镜像构建的容器,并且挂载了两个目录
    • web:一个基于docker build临时构建的镜像容器,映射端口时8090

    以上文件中需要注意,第一种构建方式是指定镜像,然后构建,而第二种是通过Dockerfile文件来进行构建的,build . 就是构建当前目录下的Dockerfile文件。

    其实DockerCompose文件可以看做是将多个docker run命令写到一个文件,只是语法稍有差异。

    1.2.安装DockerCompose

    1.github官方网站 搜索Docker compose并下载,找到下载好的二进制文件

    https://github.com/docker/compose/releases/download/1.25.5/docker-compose-Linux-x86_64
    

    2.将下载好的文件拖入Linux 并剪切到 /usr/local目录下

    mv docker-compose-Linux-x86_64 /usr/local
    

    3.修改名称(为后面方便调用) 并修改其为可执行文件

    mv docker-compose-Linux-x86_64 docker-compose
    chmod 777 docker-compose
    mv docker-compose /usr/local/bin/
    

    4.测试是否安装

    $ docker-compose --version
    docker-compose version 1.25.5, build 1110ad01
    

    5.卸载

    // 如果是 二进制包方式安装的,删除二进制文件即可
    sudo rm /usr/local/bin/docker-compose
    // 如果是通过 pip 安装的,则执行如下命令即可删除。
    sudo pip uninstall docker-compose
    

    1.3.Docker-compose创建容器

    通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目。

    yml格式描述:

    1、yml文件以缩进代表层级关系
    2、缩进不允许使用tab只能使用空格
    3、空格的个数不重要,只要相同层级的元素左对齐即可(建议2个)
    4、大小写敏感
    5、数据格式为,名称:(空格)值
    
    一、 k: (空格)v:表示一对键值对(空格不能省略),以空格控制层级关系,只要是左对齐的数据,都是同一级别;
    server:
    port: 8083
    path: /helloBoot
    二、数组(用-表示数组中的一个元素):
    animal:
    - cat
    - dag
    

    1.4.示例

    用compose的方式管理一个Tomcat容器和MySQL
    1.使用cd命令进入opt目录 新建目录docker_mysql_tomcat。

    cd /opt
    mkdir docker_mysql_tomcat
    

    2.在如上目录中 编写创建 docker-compose.yml配置文件。

    vim docker-compose.yml
    

    3.编写内容

    version: '3.1'
    services:
      mysql: # 服务的名称
        restart: always # 只要docker启动,容器会随着启动
        image: mysql # 指定镜像路径信息(默认官方镜像地址)
        container_name: mysql-3306 # 指定容器名称 --name
        ports:
          - 3306:3306 #指定端口号映射
        environment:
          MYSQL_ROOT_PASSWORD: root #指定MYSQL ROOT用户的密码
          TZ: Asiz/Shanghai #指定时区
        volumes:
          - /opt/docker_mysql_tomcat/mysql/data:/var/lib/mysql // 映射mysql的数据目录到宿主机,保存数据
          - /opt/docker_mysql_tomcat/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
          // 把mysql的配置文件映射到容器的相应目录
      tomcat:
        restart: always
        image: tomcat
        container_name: tomcat-8080
        ports:
          - 8080:8080
        environment:
          TZ: Asiz/Shanghai
        volumes:
          - /opt/docker_mysql_tomcat/tomcat/webapps:/usr/local/tomcat/webapps
          - /opt/docker_mysql_tomcat/tomcat/logs:/usr/local/tomcat/logs
    

    4.启动

    docker-compose up -d
    默认执行的文件名:docker-compose.yml(且需要在当前上下文路径中) 。如果说文件名不是默认的需要使用下面的指令:
    docker-compose -f 文件名.后缀名 up –d
    

    创建成功后,进入到/usr/local/tomcat/webapps里边新建ROOT文件夹,然后在里边新建index.html文件,最好访问测试即可。
    5.关闭或删除容器

    docker-compose down #关闭并删除容器
    docker-compose stop #关闭容器
    

    6.开启容器

    docker-compose start
    

    7.查看由docker-compose管理的容器

    docker-compose ps
    

    8.查看日志

    docker-compose logs -f
    
  • 相关阅读:
    poj1006生理周期(中国剩余定理)
    Sort the Array
    pojBuy Tickets2828线段树或者树状数组(队列中倒序插队)
    poj 2187 Beauty Contest(凸包求解多节点的之间的最大距离)
    将数据转化成字符串时:用字符串的链接 还是 StringBuilder
    poj 2031Building a Space Station(几何判断+Kruskal最小生成树)
    java中同步嵌套引起的死锁事例代码
    poj 1905Expanding Rods
    (单例设计模式中)懒汉式与饿汉式在多线程中的不同
    HDU 1024Max Sum Plus Plus(最大m字段和)
  • 原文地址:https://www.cnblogs.com/dcy521/p/15390941.html
Copyright © 2020-2023  润新知