docker-compose------->docker三剑客之一,部署tomcat负载均衡

docker compose:编排容器

简介:

官网地址:

https://docs.docker.com/compose/
Compose 是用于定义和运行多容器 Docker 应用程序的工具

compose使用步骤

  • 写一个dockerfile定义一个运行环境
  • 编写docker-compose.yml 定义运行环境的服务,这样它们可以在隔离环境中一起运行。
  • 最后 docker-compose up 命令来启动并运行整个环境

compose部署

  1. 下载compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 赋予可执行权限
chmod +x /usr/local/bin/docker-compose
  1. 软链接到 /usr/bin/
  sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4.为了能够补全命令,下载一个docker-compose脚本

 sudo curl -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
  1. 下载完成后,重新加载您的终端。您可以关闭然后打开一个新终端,或重新加载您的设置source ~/.bashrc命令在您当前的终端。

  2. composoe 安装完成

docker-compose语法

  • 语法:

docker-compose [-f=…] [options] [COMMAND] [ARGS…]

  • 常用的参数:
-f,--file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定;
-p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名;
--x-networking 使用 Docker 的可拔插网络后端特性;
--x-network-driver DRIVER 指定网络后端的驱动,默认为 bridge;
--verbose 输出更多调试信息;
-v, --version 打印版本并退出;
  • 常用命令:
docker-compose 命令 --help                     获得一个命令的帮助
docker-compose up -d nginx                     构建启动nignx容器
docker-compose exec nginx bash                 登录到nginx容器中
docker-compose down                            此命令将会停止 up 命令所启动的容器,并移除网络
docker-compose ps                              列出项目中目前的所有容器
docker-compose restart nginx                   重新启动nginx容器
docker-compose build nginx                     构建镜像 
docker-compose build --no-cache nginx          不带缓存的构建
docker-compose top                             查看各个服务容器内运行的进程 
docker-compose logs -f nginx                   查看nginx的实时日志
docker-compose images                          列出 Compose 文件包含的镜像
docker-compose config                          验证文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 
docker-compose events --json nginx             以json的形式输出nginx的docker日志
docker-compose pause nginx                     暂停nignx容器
docker-compose unpause nginx                   恢复ningx容器
docker-compose rm nginx                        删除容器(删除前必须关闭容器,执行stop)
docker-compose stop nginx                      停止nignx容器
docker-compose start nginx                     启动nignx容器
docker-compose restart nginx                   重启项目中的nignx容器
docker-compose run --no-deps --rm php-fpm php -v   在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器

docker-compose部署tomcat负载均衡

环境准备

主机名IP地址所需软件包
docker01192.168.42.1apache-tomcat-8.5.16.tar.gz,apache-tomcat-8.5.16.tar.gz,

目录介绍:
/tomcat/nginx : 存放nginx的配置文件
/tomcat/tomcat : 存放dockerfile文件
/tomcat/webserver: 存放测试文件

  1. 创建目录存放dockerfile目录
mkdir -p /root/tomcat/tomcat && cd /root/tomcat/tomcat
  1. 去官网下载jdk1.8
    Linux x64 Compressed Archive

  2. 去官网下载tomcat8
    tomcat8

  3. 创建存放dockerfile文件目录

mkdir -p /root/tomcat/tomcat && cd /root/tomcat/tomcat
  1. 将tomat包和jdk包放在/tomcat/tomcat
ls
  apache-tomcat-8.5.16.tar.gz   jdk-8u291-linux-x64.tar.gz
  1. 编写dockerfile
cat > /root/tomcat/tomcat/Dockerfile < EOF
FROM centos
ADD apache-tomcat-8.5.16.tar.gz /usr/local/
ADD jdk-8u291-linux-x64.tar.gz /usr/local/
EXPOSE 8080
CMD ["/usr/local/apache-tomcat-8.5.16/bin/catalina.sh","run"]
EOF
  1. 创建nginx配置文件目录
mkdir /root/tomcat/nginx && cd  /root/tomcat/nginx
  1. 编辑nginx配置文件
cat > /root/tomcat/nginx/default.conf << EOF
upstream webserver {
       server tomcat1:8080;
       server tomcat2:8080;
}
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
                proxy_pass http://webserver;
    }
}
EOF
  1. 创建测试文件目录
mkdir /root/tomcat/webserver/{tomcat1,tomcat2} && cd /root/tomcat/webserver
  1. 测试文件
echo "1234" > webserver/tomcat1/index.jsp
echo "56789" > webserver/tomcat2/index.jsp
  1. 编写docker-compose.yml配置文件

```cpp
cat >  /root/tomcat/docker-compose.yml << EOF
version: '3'
services:
  nginx:
    image: nginx
    restart: always
    ports:
      - 80:80
    links:
      - tomcat1:tomcat1
      - tomcat2:tomcat2
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - tomcat1
      - tomcat2
  tomcat1:
    hostname: tomcat1
    build: ./tomcat
    volumes:
      - /root/tomcat/webserver/tomcat1:/usr/local/apache-tomcat-8.5.16/webapps/ROOT
  tomcat2:
    hostname: tomcat2
    build: ./tomcat
    volumes:
      - /root/tomcat/webserver/tomcat2:/usr/local/apache-tomcat-8.5.16/webapps/ROOT
EOF
13. docker-compose开始定义
```bash
docker-compose -f /root/tomcat/docker-compose.yml up -d
  1. 访问,查看是否负载成功
while true; curl 192.168.42.1; sleep 0.5s;done
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值