zoukankan      html  css  js  c++  java
  • docker compose学习

    下载docker-compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    

    检测是否安装成功

    docker-compose -v
    

    创建第一个docker-compose程序

    1.创建一个docker-compose.yml文件
    touch docker-compose.yml
    2.在配置文件中定义一个项目存在哪些服务
    version: "3.0"
    services:
    
      demo:
        build:  #启动服务时先将build命令中指定dockerfile打包成镜像,在运行该镜像
          context:demo   # 指定上下文目录dockerfile所在目录 ,把demo当做当前目录的上下文根目录,然后找寻dockerfile文件
          dockerfile: Dockerfile
        container_name: demo   #指定运行容器后的名称
        ports:
          - "8081:8081"
        networks:
          - hello
        depends_on:
          - tomcat    # 依赖于tomcat,必须等下面的tomcat起来后这个demo才能启动
    
    
      tomcat:  #服务名唯一
        container_name: tomcat01     #相当于run的 --name
        image: tomcat:8.0-jre8 #创建当前这个服务使用镜像是谁     相当于run的image
        ports:     #数组           相当于run的-p
          - 8080:8080   #映射端口
        volumes:   #完成宿主机与容器中目录数据卷共享      相当于run的-v
          # - /root/apps:/usr/local/tomcat/webapps    #使用自定义路径映射  两种方式
          - tomcatwebapps:/usr/local/tomcat/webapps    # 这个tomcatwebapps需要在声明一下
        networks:   #代表当前服务使用哪个网络桥      相当于run --network
          - hello
    
    
    mysql:
      image: mysql:5.7.32
      container_name: mysql   #服务器启动之后容器名称, 相当于docker run之后的--name
      ports:
        - "3307:3306"
      volumes:
        - mysqldata:/var/lib/mysql
        - mysqlconf:/etc/mysql
      environment:   #下面env_file两个选一个使用,推荐使用下面的这样不容易暴露密码
        - MYSQL_ROOT_PASSWORD=root
      env_file:   #用来将environment环境中配置放入指定配置文件中
        - ./mysql.env    #需要创建mysql.env文件并将MYSQL_ROOT_PASSWORD=root放进去,上面的就不要写了
      networks:
        - hello
      
      
    volumes:  #声明上面服务所使用的自动创建的卷名
        tomcatwebapps:   #声明指令的卷名  compose自动创建该卷名但是会在之前加入项目名
            external:   #使用自定义卷名
              true     #true代表确定使用指定卷名
        mysqldata:
        mysqlconf:
    
    
      # 可配置多个服务
      tomcat:  #服务名唯一
        image: tomcat:8.0-jre8 #创建当前这个服务使用镜像是谁
        ports:     #数组
          - 8081:8081   #映射端口
    3.运行docker-compose
    docker-compose up  #启动这个项目的所有服务  必须保证运行命令的目录存在docker-compose.yml
    
    
    

    常用指令

    up指令
    作用:用来启动所有docker-compose服务
    选项: -d 后台启动所有服务
    down指令
    作用:用来关闭所有docker-compose服务
    exec指令
    作用:进入容器
    docker-compose exec redis(docker-compose.yml中声明服务id) bash
    ps 指令
    作用:用来展示当前docker-compose运行的所有容器
    docker-compose ps
    restart 指令
    作用:用来重启项目中每个服务如果不写服务id 默认重启所有服务
    docker-compose restart [服务id]
    rm指令
    作用:用来删除项目服务
    docker-compose rm -fv [服务id] 注意:谨慎操作 -v删除服务的数据卷
    start指令
    启动服务 docker-compose start [服务id]
    stop指令
    关闭服务 docker-compose stop [服务id]
    top指令
    用来查看compose容器内运行的进程
    docker-compose top
    logs指令
    展示某些容器的日志
    docker-compose logs [服务id]

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    Mysql常用语句
    关于nginx的一个错误操作记录
    windows下安装ElasticSearch
    在IIS托管服务中设置Rewrite重定向到webapi接口
    asp.net IHttpHandler浅析
    asp.net IHttpModule浅析
    vscode 创建.net core项目初体验
    批量联表更新
    mysql 关于数据库和数据表的基本操作
    mysql Navicat客户端
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/14513782.html
Copyright © 2011-2022 走看看