Dockers之构建容器Nginx+Tomcat+MySQL
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,博文大纲:一、构建Nginx容器二、构建Tomcat容器三、构建MySQL容器注意:一定要配置宿主机可以连接Internet,因为在构建容器的过程中,很多资源需要去互联网找。一、构建Nginx容器Ng
千家信息网最后更新 2025年01月31日Dockers之构建容器Nginx+Tomcat+MySQL
博文大纲:
- 一、构建Nginx容器
- 二、构建Tomcat容器
- 三、构建MySQL容器
注意:一定要配置宿主机可以连接Internet,因为在构建容器的过程中,很多资源需要去互联网找。
一、构建Nginx容器
Nginx是一款轻量级的web服务器,也是一个优秀的反向代理服务器。Nginx服务占用内存少,并发能力强,下面是构建Nginx容器的具体操作:
[root@localhost ~]# docker pull centos #下载centos 7的基础镜像,该镜像也将会被后面构建的Tomcat和MySQL容器所使用。[root@localhost ~]# mkdir nginx #创建工作目录[root@localhost ~]# cd nginx/[root@localhost nginx]# vim Dockerfile #编写dockerfile文件,用来实现Nginx安装过程#写入以下内容FROM centos #设置基础镜像MAINTAINER the centos project #维护该镜像的用户信息RUN yum -y install wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel #安装相关依赖包RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz #下载Nginx源码包RUN tar zxf nginx-1.9.7.tar.gz #解压下载的源码包WORKDIR nginx-1.9.7 #指定容器中的工作路径RUN ./configure --prefix=/usr/local/nginx && make && make install #配置及编译安装#开启容器的80/443端口EXPOSE 80 EXPOSE 443RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf #修改配置文件,以非daemon方式启动ADD run.sh /run.sh #上传运行脚本RUN chmod 775 /run.sh #赋予脚本权限CMD ["/run.sh"] #启动容器时执行脚本,编辑完成后,保存退出即可[root@localhost nginx]# vim run.sh #编辑运行脚本,写入以下内容#!/bin/bash/usr/local/nginx/sbin/nginx[root@localhost nginx]# ls #确定当前目录下有以下文件Dockerfile run.sh[root@localhost nginx]# docker build -t nginx:ljz . #生成镜像,千万不要忽略命令末尾的点"."号,否则会报错 .............................#省略部分内容Successfully built cd6ac93f3680 #出现这行提示信息,则表示创建成功[root@localhost nginx]# docker run -d -P nginx:ljz #启动该容器,"-d"表示持久化运行,"-P"表示将容器的端口映射到宿主机895c19da98f3256acb20939dcc7abb4d26273287ddfc0810efc0940a55d04c10[root@localhost nginx]# docker ps -a #查看容器,其中32769、32768就是容器映射到宿主机的端口CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES895c19da98f3 nginx:ljz "/run.sh" 6 seconds ago Up 5 seconds 0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp nervous_brahmagupta
访问容器进行测试,Nginx是否运行成功!如下(访问宿主机的32769端口,就相当于访问了容器的80端口):
二、构建Tomcat容器
Tomcat是一个免费开源的轻量级web服务器,在中小型企业和并发量不高的场合普遍使用,是开发和调试JSP程序的首选。下面使用Dockerfile文件的方式来创建带有Tomcat服务的docker镜像。
准备工作:点击下载JDK源码包,并放置Linux宿主机的Tomcat工作目录。
[root@localhost ~]# mkdir tomcat #创建Tomcat的工作目录[root@localhost ~]# cd tomcat/ #切换至Tomcat目录[root@localhost tomcat]# rz #我这里将本地的JDK源码包上传了上来(我这里使用的是xshell连接的)[root@localhost tomcat]# ls #查看jdk-8u91-linux-x64.tar.gz[root@localhost tomcat]# tar zxf jdk-8u91-linux-x64.tar.gz #解包[root@localhost tomcat]# vim Dockerfile #编写dockerfile文件FROM centos #基础镜像centosMAINTAINER The centos project ljz916551516@163.com #维护该镜像的用户信息ADD jdk1.8.0_91 /usr/local/jdk-8u91 #将本地的JDK文件上传至容器#以下是设置JDK环境变量ENV JAVA_HOME /usr/local/jdk-8u91 ENV JAVA_BIN /usr/local/jdk-8u91/binENV JRE_HOME /usr/local/jdk-8u91/jreENV PATH $PATH:/usr/local/jdk-8u91/bin:/usr/local/jdk-8u91/jre/binENV CLASSPATH /usr/local/jdk-8u91/jre/bin:/usr/local/jdk-8u91/lib:/usr/local/jdk-8u91/jre/lib/charsets.jarRUN yum -y install wget #安装wget工具RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz#下载Tomcat源码包RUN tar zxf apache-tomcat-8.5.38.tar.gz #解压Tomcat源码包RUN mv apache-tomcat-8.5.38 /usr/local/tomcat #移至安装目录EXPOSE 8080 #开启8080端口ADD run.sh /run.sh #添加运行脚本RUN chmod 775 /run.sh #赋予脚本执行权限CMD ["/run.sh"] #运行脚本,编写完毕后,保存退出即可。[root@localhost tomcat]# vim run.sh #编写执行脚本内容#!/bin/bash/usr/local/tomcat/bin/startup.shtailf /run[root@localhost tomcat]# ls #确保当前目录下有以下文件Dockerfile jdk1.8.0_91 jdk-8u91-linux-x64.tar.gz run.sh[root@localhost tomcat]# docker build -t tomcat:ljz . #生成镜像,千万不要忽略命令末尾的点"."号,否则会报错 .............................#省略部分内容Successfully built 94c59c9239ec #出现这行提示信息,则表示创建成功[root@localhost tomcat]# docker run -d --name tomcat -p 8080:8080 tomcat:ljz#运行刚刚创建的Tomcat容器,并指定容器的名字为Tomcat,映射到宿主机的8080端口。5d8a5714166ef63208511bb1123c5568d0562b1b3734db4eec2aed733d8a733d[root@localhost tomcat]# docker ps -a | grep tomcat #查看Tomcat容器的状态是否正常5d8a5714166e tomcat:ljz "/run.sh" 20 seconds ago Up 19 seconds 0.0.0.0:8080->8080/tcp tomcat
客户端访问Linux宿主机的8080端口,测试是否能够访问到Tomcat容器提供的web服务,如下:
看到以上页面,则表示Tomcat容器构建成功。
这里简单说一下Tomcat和apache的区别:它们都是Aache开源组织开发的用于处理HTTP服务的项目。两者都免费,也都可以作为独立的web服务器运行。Apache是C语言实现的,主要解析静态文本,并发性高,侧重于HTTP服务,Tomcat是java开发的一个符合JavaEES的JSP服务器,属于Apache的扩展,主要用于解析JSP/Servlet,侧重于Servlet引擎。
三、构建MySQL容器
MySQL是当下最流行的关系型数据库,所使用的SQL语言是用于访问数据库的最常用标准化语言,MySQL具有体积小、速度快、成本低的优势,是中小型企业首选的数据库。
开始构建MySQL容器:
[root@localhost ~]# docker pull docker.io/guyton/centos6 #下载centos 6作为基础镜像[root@localhost ~]# mkdir mysql #创建工作目录[root@localhost ~]# cd mysql/ #切入工作目录[root@localhost mysql]# vim Dockerfile #编辑dockerfile文件FROM guyton/centos6MAINTAINER the centos project-mysqlRUN yum -y install mysql mysql-serverRUN /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';"EXPOSE 3306CMD ["mysqld_safe"][root@localhost mysql]# docker build -t mysql:ljz . #生成镜像,千万不要忽略命令末尾的点"."号,否则会报错 .............................#省略部分内容 Successfully built 30414dc7bc02 #出现这行提示信息,则表示创建成功[root@localhost ~]# docker run -d --name mysql -P mysql:ljz #运行容器,并定义容器名称为mysqlea1a8aa2d1f18e0d06c4bdf47a6b743f3763247f13c6335b3fc7b785baf7332f[root@localhost ~]# docker ps -a | grep mysql #确认容器处于运行状态ea1a8aa2d1f1 mysql:ljz "mysqld_safe" 41 seconds ago Up 40 seconds 0.0.0.0:32770->3306/tcp mysql[root@localhost ~]# mysql -h 192.168.1.1 -u root -P 32770 -p123456#对容器中的数据库进行访问测试,若无法使用mysql命令,请自行执行"yum -y install mysql"进行安装Welcome to the MariaDB monitor. Commands end with ; or \g. .............................#省略部分内容 MySQL [(none)]> #命令提示符发生变化,登录到了容器中的数据库MySQL [(none)]> show databases; #查看数据库的数据+--------------------+| Database |+--------------------+| information_schema || mysql || test |+--------------------+3 rows in set (0.00 sec)MySQL [(none)]> exit #退出Bye
-------- 本文至此结束,感谢阅读 --------
容器
镜像
服务
运行
目录
文件
端口
脚本
内容
宿主
宿主机
数据
工作
数据库
源码
成功
信息
命令
服务器
基础
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
限制数据库字段最长和最短
ip网络技术答案
免费文件服务器
数据库 台湾
常用数据库英文
广西软件开发培训学校
网络安全2021年度工作总结
服务器环境管理系统起名
甘肃省养老金数据库
宁波宁海h3c应用优化服务器
航空公司安全数据库维护
魔兽世界新出服务器
北京势竹网络技术有限公司
服务器安全狗ip
计算机网络技术和铁路哪个好
网络安全高级工程师pdf
东莞软件开发 常平
用什么软件开发微信小程序好
服务器异响
幻塔不同的服务器有什么区别吗
怎么删除访问服务器账户
iosapp软件开发
软件开发遇见的问题
saas软件开发合同
华为服务器如何连接虚拟桌面
国内服务器托管
vb程序设计怎么创建数据库
甘肃省网络安全宣传周活动开幕
自组装服务器
安徽软件开发有哪些