应该怎么样构建Nginx+Tomcat+MYSQLDocker容器
admin
2023-03-28 22:01:50
0

本篇文章给大家主要讲的是关于应该怎么样构建Nginx+Tomcat+MYSQLDocker容器的内容,感兴趣的话就一起来看看这篇文章吧,相信看完应该怎么样构建Nginx+Tomcat+MYSQLDocker容器对大家多少有点参考价值吧。

一、构建Nginx容器

Nginx是一款轻量级的WEB云服务器,也是一款优秀的反向代理云服务器。Nginx服务占用内存少,并发能力强,深受国内外用户的欢迎。

1.下载基础镜像

[root@localhost ~]# docker pull docker.io/lvzhenjiang/centos7
//下载一个创建Nginx镜像的基础centos镜像

2.建立工作目录

[root@localhost ~]# mkdir nginx
[root@localhost ~]# cd nginx/

3.创建并编写Dockerfile文件

[root@localhost nginx]# vim Dockerfile
FROM lvzhenjiang/centos7              //设置基础镜像
MAINTAINER lzj                              //维护者信息
RUN yum -y install wget prce-devel net-tools gcc zlib zlib-devel make openssl-devel                 
//安装所需依赖包
RUN wget http://nginx.org/download/nginx-1.14.2.tar.gz
//获取nginx源码包
RUN tar zxf nginx-1.14.2.tar.gz
WORKDIR nginx-1.14.2
//解压之后进入解压后的目录
RUN ./configure --prefix=/usr/local/nginx && make && make install
//编译安装
EXPOSE 80                     //开启80端口
EXPOSE 443                   //开启443端口
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
//修改nginx服务配置文件,以非daemon(守护进程)方式启动
ADD run.sh /run.sh            //上传本地编写的脚本到容器中
RUN chmod 775 /run.sh     //赋予脚本执行权限
CMD ["/run.sh"]                 //启动容器时,执行run.sh脚本

4.编写执行脚本内容

[root@localhost nginx]# vim run.sh
#!/bin/bash                                          //声明使用的shell
/usr/local/nginx/sbin/nginx                  //使用nginx自带的脚本启动nginx

5.生成镜像

[root@localhost nginx]# ls                       
//确保Dockerfile文件和启动脚本在同一目录下
Dockerfile  run.sh
[root@localhost nginx]# docker build -t nginx:v1 .
//使用当前目录下的Dockerfile文件生成新的镜像,名为nginx:v1

6.启动容器进行测试

[root@localhost nginx]# docker run -dit -p 12345:80 --name nginx nginx:v1
//使用新生成的镜像创建一个名为nginx的容器,并将容器中的80端口映射到宿主机的12345端口
[root@localhost nginx]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                            NAMES
1c73bb591e84        nginx:v1            "/run.sh"           31 minutes ago      Up 31 minutes       443/tcp, 0.0.0.0:12345->80/tcp   nginx
//确认容器已经正常运行并已经映射端口

测试结果:
应该怎么样构建Nginx+Tomcat+MYSQLDocker容器

nginx容器搭建完成!

二、构建Tomcat容器

Tomcat是一个免费开源的轻量级Web云服务器,在中小型企业和并发量不高的场合普遍使用,是开发和调试JSP程序的首选。

1.下载基础镜像

[root@localhost ~]# docker pull docker.io/lvzhenjiang/centos7
//下载一个创建Nginx镜像的基础centos镜像

2.创建工作目录

因为tomcat需要java的环境,所以要下载JDK软件包

[root@localhost ~]# mkdir tomcat
[root@localhost ~]# cd tomcat/

3.编写Dockerfile文件

[root@localhost tomcat]# vim Dockerfile 
FROM lvzhenjiang/centos7              //基础镜像
MAINTAINER lzj                               //维护者信息
ADD jdk1.8.0_91 /usr/local/jdk-8u91
ENV JAVA_HOME /usr/local/jdk-8u91
ENV JAVA_BIN /usr/local/jdk-8u91/bin
ENV JRE_HOME /usr/local/jdk-8u91/jre
ENV PATH $PATH:/usr/local/jdk-8u91/bin:/usr/local/jdk-8u91/jre/bin
ENV CLASSPATH /usr/local/jdk-8u91/jre/bin:/usr/local/jdk-8u91/lib:/usr/local/jdk-8u91/jre/lib/charsets.jar
//设置JDK环境变量
RUN yum -y install wget
RUN wget http://us.mirrors.quenda.co/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
//获取tomcat软件包
RUN tar zxf apache-tomcat-9.0.27.tar.gz
RUN mv apache-tomcat-9.0.27 /usr/local/tomcat
//解压之后,并将解压后的目录移动到指定的位置
EXPOSE 8080
//开启8080端口
ADD run.sh /run.sh
RUN chmod 775 /run.sh
CMD ["/run.sh"]                       //启动容器时,执行脚本

4.编写启动脚本

[root@localhost tomcat]# vim run.sh 
#!/bin/bash
/usr/local/tomcat/bin/startup.sh            //使用tomcat服务自带的脚本启动服务
tailf /run                  //让启动脚本始终运行

5.使用Dockerfile文件生成镜像

[root@localhost tomcat]# ls
Dockerfile  jdk1.8.0_91  run.sh
//确保Dockerfile文件中所需的东西全在这个目录下
[root@localhost tomcat]# docker build -t tomcat:v1 .
//使用当前目录的Dockerfile文件生成名为tomcat:v1的镜像

6.运行容器并验证

[root@localhost tomcat]# docker run -dit -p 12344:8080 --name tomcat tomcat:v1
//使用新生成的进行创建一个名为tomcat的容器,并将容器中的8080端口映射到宿主机的12344端口
[root@localhost tomcat]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                            NAMES
1ffc46084d84        tomcat:v1           "/run.sh"           10 minutes ago      Up 10 minutes       0.0.0.0:12344->8080/tcp          tomcat
//确保容器已经启动,并已经映射端口

访问测试:
应该怎么样构建Nginx+Tomcat+MYSQLDocker容器

tomcat容器搭建完成!

三、构建MySQL容器

MySQL是当下最流行的关系型数据库,所使用的SQL语言是用于访问数据库的最常用标准化语言,MySQL具有体积小、速度快、成本低的优势,成为中小型企业首选的数据库。

1.下载基础镜像

[root@localhost ~]# docker pull docker.io/lvzhenjiang/centos6
//下载centos6的基础镜像作为构建MySQL的基础镜像

2.创建工作目录

[root@localhost ~]# mkdir mysql
[root@localhost ~]# cd mysql/

3.创建Dockerfile文件

[root@localhost mysql]# vim Dockerfile
FROM lvzhenjiang/centos6           //基础镜像
MAINTAINER lzj                      //维护者信息
RUN yum -y install mysql mysql-server                  //安装mysql
RUN /etc/init.d/mysqld start && \
mysql -e "grant all privileges on *.* to 'root'@'%' identified by '123456';"&&\
mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by '123456';"
//启动MySQL服务,并授权用户
EXPOSE 3306                        //开启3306端口
CMD ["mysqld_safe"]              //使用MySQL自带的启动脚本启动服务

4.生成镜像

[root@localhost mysql]# ls
Dockerfile
[root@localhost mysql]# docker build -t mysql:v1 .
//使用当前目录下的Dockerfile文件生成名为mysql:v1的镜像

5.创建容器并测试

[root@localhost mysql]# docker run -dit -p 12343:3306 --name=mysql mysql:v1
//使用mysql:v1的镜像生成一个名为mysql的容器,并映射容器中的3306端口都宿主机的12343端口
[root@localhost mysql]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                            NAMES
c356d5b35167        mysql:v1            "mysqld_safe"       4 seconds ago       Up 3 seconds        0.0.0.0:12343->3306/tcp   
//确认容器已经正常运行,并已经启动端口映射

宿主机进行测试:

[root@localhost ~]# yum -y install mysql                    //首先安装mysql命令
[root@localhost ~]# mysql -u root -h 127.0.0.1 -P 12343 -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 
//访问成功

以上关于应该怎么样构建Nginx+Tomcat+MYSQLDocker容器详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。

相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...