• docker-compose 案例


    官网示例:

    安装wordpress

    version: "2"      
    services:
       db:
         image: mysql:5.7
         volumes:
           - db_data:/var/lib/mysql
         restart: always
         environment:
           MYSQL_ROOT_PASSWORD: wordpress
           MYSQL_DATABASE: wordpress
           MYSQL_USER: wordpress
           MYSQL_PASSWORD: wordpress
    
       wordpress:
         depends_on:
           - db
         image: wordpress:latest
         ports:
           - "8001:80"
         restart: always
         environment:
           WORDPRESS_DB_HOST: db:3306
           WORDPRESS_DB_USER: wordpress
           WORDPRESS_DB_PASSWORD: wordpress
    volumes:
        db_data:

    运行 docker-compose up -d Compose 就会拉取镜像再创建我们所需要的镜像,然后启动 wordpress 和数据库容器。 接着浏览器访问 127.0.0.1:8000 端口就能看到 WordPress 安装界面了。

    其他示例

    示例一,安装haproxy+nginx

    目录结构:

    [root@bogon ~]# tree haproxy/
    haproxy/
    ├── docker-compose.yml
    ├── haproxy
    │   └── haproxy.cfg
    ├── httpd
    │   ├── Dockerfile
    │   ├── docker.repo
    │   └── index.html
    ├── nginx1
    │   └── index.html
    └── nginx2
        └── index.html
    
    4 directories, 7 files

    docker-compose.yml

    web1:
        build: ./httpd
        expose: 
           - 80
    
    web2:
        image: nginx:latest
        volumes:
            - ./nginx1:/usr/share/nginx/html
        expose:
            - 80
    
    web3:
        image: nginx
        volumes:
            - ./nginx2:/usr/share/nginx/html
    
    
    haproxy:
        image: haproxy
    
        volumes:
            -  ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
        links: 
            - web1
            - web2
            - web3
    
        ports:
           - "8888:80"
        expose:
            - 80
    [root@bogon haproxy]# cat haproxy/haproxy.cfg 
    global
        log 127.0.0.1 local0
        log 127.0.0.1 local1 notice
    defaults
        log global
        mode http
        option httplog
        option dontlognull
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms
        stats uri /status
    frontend balancer
        bind 0.0.0.0:80
        mode http
        default_backend web_backends
    backend web_backends
        mode http
        option forwardfor
        balance roundrobin
        server weba web1:80 check
        server webb web2:80 check
        server webc web3:80 check
        option httpchk GET /
        http-check expect status 200
    
    
    [root@bogon haproxy]# cat httpd/Dockerfile 
    FROM bluedata/rhel7
    EXPOSE 80
    COPY docker.repo /etc/yum.repos.d/
    RUN yum install -y httpd
    ADD index.html /var/www/html
    CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
    [root@bogon haproxy]# 
    
    
    [root@bogon haproxy]# cat httpd/docker.repo 
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/centos/7/
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    
    [root@bogon haproxy]
    # cat httpd/index.html test [root@bogon haproxy]#

    haproxy目录执行docker-compose up -d ,完成后通过docker ps -a 查看

    [root@bogon haproxy]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
    820a8375c235        haproxy             "/docker-entrypoin..."   About an hour ago   Up About an hour    0.0.0.0:8888->80/tcp   haproxy_haproxy_1
    8f91ec7e70dc        nginx:latest        "nginx -g 'daemon ..."   About an hour ago   Up About an hour    80/tcp                 haproxy_web2_1
    1b083f53e569        nginx               "nginx -g 'daemon ..."   About an hour ago   Up About an hour    80/tcp                 haproxy_web3_1
    369c7dc764d8        haproxy_web1        "/usr/sbin/httpd -..."   About an hour ago   Up About an hour    80/tcp                 haproxy_web1_1

    访问 ip:8888和ip:8888/status

  • 相关阅读:
    使用批处理文件轻松更改本地IP地址
    Aveiconifier是一个非常实用方便的制作ico格式文件的小工具~
    C#中选择文件的例子
    WindowsXP命令行修改服务启动选项
    Oracle中数据导入导出技巧
    hibernateTemplateOrder Results
    如何向 Microsoft 管理控制台添加证书管理器
    maven usages
    让Eclipse拥有像Visual Studio一样的强大的提示功能
    jsp页面跳转方法及区别
  • 原文地址:https://www.cnblogs.com/FRESHMANS/p/8436133.html
Copyright © 2020-2023  润新知