美文网首页
Docker 体验及总结(5) - Compose

Docker 体验及总结(5) - Compose

作者: 千反田爱瑠爱好者 | 来源:发表于2018-08-22 11:21 被阅读22次
    https://www.docker.com/

    Docker Compose

    方便本地部署开发环境,但不适用于生产环境。

    多容器App:

    • 要从Dockerfile build image或者DockerHub拉取image
    • 要创建多个Container
    • 要管理多个Container

    使用Docker Compose实现批处理:

    • 通过yml配置文件定义多容器docker应用
    • 通过一条命令就可以根据yml文件定义创建或者管理容器

    Linux环境下需要单独安装:https://docs.docker.com/compose/install/#install-compose

    示例:docker-compose.yml

    vim docker-compose.yml
        version: '3'
        
        services:
        
          wordpress:
            image: wordpress
            ports:
              - 8080:80
            environment:
              WORDPRESS_DB_HOST: mysql
              WORDPRESS_DB_PASSWORD: root
            networks:
              - my-bridge
        
          mysql:
            image: mysql
            environment:
              MYSQL_ROOT_PASSWORD: root
              MYSQL_DATABASE: wordpress
            volumes:
              - mysql-data:/var/lib/mysql
            networks:
              - my-bridge
        
        volumes:
          mysql-data:
        
        networks:
          my-bridge:
            driver: bridge
            
    docker-compose build        # 先建立Images,提高启动速度
    docker-compose up           # 调试模式,-d后台执行
    

    常用命令

    docker-compose --version
    docker-compose -f docker-compose.yml up
    docker-compose down                 # 删除容器
    docler-compose stop
    docker-compose start
    docker-compose ps
    docker-compose images
    docker-compose exec xxx bash        # 在docker中执行命令,注意docker-compose下dodker的名称与docker本身的名称不同
    
    

    Service

    • 一个service代表一个Container,可以从DockerHub或者从本地Dockerfile build出来的image创建;
    • Service的启动类似Docker run,可以给其指定network和volumn。

    Scale

    • 扩展App实例,结合HAProxy、Nginx可实现负载均衡(当yml文件中指定了服务的端口时会因端口已占用报错);
    • 不能部署在多台宿主机上。
    docker-compose up --scale service_name=3 -d
    

    示例:

    version: "3"
    
    services:
    
      redis:
        image: redis
    
      web:
        build:
          context: .
          dockerfile: Dockerfile
        environment:
          REDIS_HOST: redis
    
      lb:
        image: dockercloud/haproxy
        links:
          - web
        ports:
          - 8080:80
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock 
    

    相关文章

      网友评论

          本文标题:Docker 体验及总结(5) - Compose

          本文链接:https://www.haomeiwen.com/subject/teveiftx.html