docket环境下nginx反向代理tomcat

docket环境下nginx反向代理tomcat

Docker 是一个开源的商业产品,有两个版本,
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用

演示环境:VMware下的centos7.5系统,centos使用的是root账号

一、安装docker

Docker 要求 CentOS 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 

1.通过 uname -r 命令查看你当前的内核版本

uname -r

2.使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum -y update

3.卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

5.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6.可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7.安装docker

sudo yum install -y docker-ce 

8.启动并加入开机启动

systemctl start docker
systemctl enable docker

9.验证安装是否成功,有client和service两部分表示docker安装启动都成功了

docker version

二、docker阿里云镜像加速

点击跳转阿里云镜像加速地址
https://cr.console.aliyun.com/cn-hangzhou/mirrors
需要登录自己的阿里云账户,然后根据阿里云的操作文档设置即可

三、docker下载nginx镜像与tomcat镜像
这里统统使用pull方式获取镜像
1.查找 Docker Hub 上的 nginx 镜像

docker search nginx

2.我们拉去官方的镜像

docker pull nginx

3.拉去官方tomcat的镜像

docker pull tomcat

4.分别等待下载完成后我们可以在本地镜像列表里面看到

docker images

docket环境下nginx反向代理tomcat_第1张图片
四、启动tomcat
1.启动命令

docker run -p 8080:8080 --name tomcat0 -d tomcat

这个run命令语法如下,看需要配置,我这里只需要配置端口,名称,名称后面会用的到。

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-p: 端口映射,格式为:主机(宿主)端口:容器端口

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

–name=“nginx-lb”: 为容器指定一个名称;

–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

-h “mars”: 指定容器的hostname;

-e username=“ritchie”: 设置环境变量;

–env-file=[]: 从指定文件读入环境变量;

–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;

-m :设置容器使用内存最大值;

–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

–link=[]: 添加链接到另一个容器;

–expose=[]: 开放一个端口或一组端口;

2.命令查看容器是否运行
查看正在运行的容器

docker ps

查看全部的容器

docker ps -a

docket环境下nginx反向代理tomcat_第2张图片
然后打开浏览器,输入http://ip:8080验证是否能正常访问
如下图:
docket环境下nginx反向代理tomcat_第3张图片
五、启动并配置nginx
1、启动命令

docker run -p 80:80 --name mynginx --link tomcat0:t0 -d nginx

这里使用的是docker run命令,命令格式上面已经展示了,这里多配置了 --link属性,就是要与tomcat关联。

2.我们可以使用命令查看正在运行的容器

docker ps

查看全部的容器

docker ps -a

docket环境下nginx反向代理tomcat_第4张图片
3.准备配置文件

user nginx;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
    upstream tomcat_server {
        server t0:8080;
    }
    server {
        listen       80;
        server_name  localhost;
        location / {
           proxy_pass http://tomcat_server;
           proxy_redirect default;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        	}

	}
}

其中t0是我们刚才创建容器指定的

4.复制配置文件进入nginx容器内部替换到内部的

docker cp nginx.conf mynginx:/etc/nginx

5.进入容器内部

docker exec -it mynginx /bin/bash

docker exec 命令说明:

-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

6.找到容器内/etc/init.d下的nginx
docket环境下nginx反向代理tomcat_第5张图片
校验nginx配置文件是否有错误

nginx -t

配置文件修改重装命令

nginx -s reload

重启nginx服务

service nginx restart

停止或关闭nginx

nginx -s quit

在容器内部验证导入的配置文件有没有问题,有问题就修改,没有问题就重启容器

7.重启容器或启动容器

docker restart mynginx
docker start mynginx

8.查看容器是否启动成功

docker ps -a

9.使用浏览器访问
docket环境下nginx反向代理tomcat_第6张图片

你可能感兴趣的:(后端技术)