一、wordpress安装

  1. [root@docker ~]# mkdir wordpress
  2. [root@docker ~]# cd wordpress
  3. [root@docker ~]# vim docker-compose.yml
  • docker-compose.yml文件内容如下

    1. version: "3"
    2. services:
    3. db:
    4. image: 10.30.12.55/docker/mysql:5.6
    5. volumes:
    6. - /var/lib/mysql:/var/lib/mysql
    7. #自动重启
    8. restart: always
    9. environment:
    10. #指定MySQL的root账号初始密码
    11. MYSQL_ROOT_PASSWORD: 123456
    12. #指定容器启动后要创建的数据库
    13. MYSQL_DATABASE: wordpress
    14. #指定容器在启动后要创建的普通用户账号,该账号有远程登录的权限
    15. MYSQL_USER: tom
    16. #为用户设置密码
    17. MYSQL_PASSWORD: 123456
    18. wordpress:
    19. depends_on:
    20. - db
    21. image: 10.30.12.55/docker/wordpress
    22. ports:
    23. - "8000:80"
    24. restart: always
    25. environment:
    26. #指定要使用的数据库名
    27. WORDPRESS_DB_NAME: wordpress
    28. #指定要MySQL容器的ip和端口
    29. WORDPRESS_DB_HOST: db:3306
    30. #指定登录MySQL的账号
    31. WORDPRESS_DB_USER: tom
    32. #指定登录MySQL的密码
    33. WORDPRESS_DB_PASSWORD: 123456
  • 构建并运行项目

[root@docker ~]# docker-compose up -d

二、web负载均衡

  1. 目录结构

image.png

  1. 各个文件内容
  • 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
    
  • 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
    
  • Dockerfile

    FROM centos
    EXPOSE 80
    RUN rm -rf /etc/yum.repos.d/*
    COPY docker.repo /etc/yum.repos.d/
    RUN yum install -y httpd
    ADD index.html /var/www/html
    CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
    
  • index.html

test

  1. 执行docker-compose up构建镜像

[root@docker haproxy]# docker-compose up -d

  1. 查看docker进程信息

image.png

  1. 浏览器访问测试

image.png
image.png