• docker学习(7) docker-compose使用示例


    上一回学习了如何利用docker搭建一个mysql + java service + nginx,总共4个docker容器,如果采用docker run的方式一个一个容器去创建十分麻烦。为了能更高效的批量创建容器,docker推出了docker-compose工具,只需要定义一个docker-compose.yml文件即可快速搞定一组容器的创建,仍然以上一回的例子演示:

    mysql:
      image: daocloud.io/yjmyzz/mysql-osx:latest
      volumes:
          - ./mysql/db:/var/lib/mysql
      ports:
          - 3306:3306
      environment:
          - MYSQL_ROOT_PASSWORD=123456
    
    service1:
      image: java:latest
      volumes:
          - ./java:/opt/app
      expose:
          - 8080
      #ports:
      #    - 9081:8080
      links:
          - mysql:default
      command: java -jar /opt/app/spring-boot-rest-framework-1.0.0.jar
    
    service2:
      image: java:latest
      volumes:
          - ./java:/opt/app
      expose:
          - 8080
      #ports:
      #    - 9082:8080
      links:
          - mysql:default
      command: java -jar /opt/app/spring-boot-rest-framework-1.0.0.jar
    
    nginx1:
       image: nginx:latest
       volumes:
          - ./nginx/html:/usr/share/nginx/html:ro
          - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
          - ./nginx/conf.d:/etc/nginx/conf.d:ro
       #expose:
       #   - 80
       ports:
          - "80:80"
       links:
          - service1:service1
          - service2:service2
    

    内容不复杂,具体的关键字说明见本文最后的参考文章链接。

    问题:这个文件放在哪里?

    参见下面的目录结构:

    mysql-java-nginx
    ├── docker-compose.yml
    ├── java
    │   └── spring-boot-rest-framework-1.0.0.jar
    ├── mysql
    │   └── db
    └── nginx
        ├── conf
        ├── conf.d
        │   └── default.conf
        ├── html
        │   └── index.html
        └── nginx.conf
    

    创建容器:

    cd mysql-java-nginx
    docker-compose up
    

    就是这么简单,一个up就搞定了所有容器的创建,up通常用于首次创建,可以观察终端实时输出的日志内容判断容器是否启动正常,如果没什么问题,直接Ctrl+C退出,然后

    docker-compose start
    

    以后台方式启动容器。  

    其它命令还有:

    Commands:
      build              Build or rebuild services
      help               Get help on a command
      kill               Kill containers
      logs               View output from containers
      pause              Pause services
      port               Print the public port for a port binding
      ps                 List containers
      pull               Pulls service images
      restart            Restart services
      rm                 Remove stopped containers
      run                Run a one-off command
      scale              Set number of containers for a service
      start              Start services
      stop               Stop services
      unpause            Unpause services
      up                 Create and start containers
      migrate-to-labels  Recreate containers to add labels
      version            Show the Docker-Compose version information
    

    基本上看名字就知道意思了。  

      

    参考文章:

    https://docs.docker.com/compose/compose-file/

  • 相关阅读:
    window7访问虚拟机ubuntu中的mysql
    photo sphere viewer使用图像数据替代路径来生成全景图
    pgmagick,pil不保存图片并且获取图片二进制数据记录
    flask_admin model官方文档学习
    python pip更换下载源(转)
    flask admin学习记录
    mongodb权限管理(转)
    vmware三种网络连接模式区别
    使用VLC推送TS流(纯图版)
    【转】RTMP/RTP/RTSP/RTCP协议对比与区别介绍
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/docker-compose-sample.html
Copyright © 2020-2023  润新知