Docker 部署离线版 Nginx 镜像容器,Tomcat 镜像容器,Mariadb 镜像容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker 部署离线版 Nginx 镜像容器,Tomcat 镜像容器,Mariadb 镜像容器

Docker 部署离线版 Nginx 镜像容器,Tomcat 镜像容器,Mariadb 镜像容器



一、准备工作


    1.安装 Docker 并载入 centos7 基础镜像

    2.宿主机发布软件源

      1)宿主机安装并开启 http 服务

      2)创建共享目录

      3)使用浏览器访问测试


二、部署 Nginx 容器


    1.建立工作目录

    2.创建并编写 Dockerfile 文件

    3.编写执行脚本内容

    4.编写 yum 源文件

    5.生成镜像

    6.运行容器进行测试

    7.访问测试


三、部署 Tomcat 容器


    1.创建工作目录,并拖入相关软件

    2.编写 Dockerfile 文件

    3.编写执行脚本内容

    4.生成镜像文件

    5.运行容器进行测试

    6.访问验证


四、部署 Mariadb 容器


    1.创建工作目录

    2.编写 Dockerfile 文件

    3.创建其他相关文件

      1)编写初始化配置文件

      2)编写启动文件

      3)复制 Mariadb 初始化文件

      4)编写 yum 源文件

    4.生成镜像文件

    5.运行容器进行测试

    6.宿主机连接容器中的数据库


一、准备工作



image.png



1.安装 Docker 并载入 centos7 基础镜像


[root@docker ~]# ls
anaconda-ks.cfg  centos7  docker-18.03.1-ce.tgz
[root@docker ~]# tar xf docker-18.03.1-ce.tgz        #解压
[root@docker ~]# cp docker/* /usr/bin/                 #优化执行路径
[root@docker ~]# dockerd &                           #启动Docker
[root@docker ~]# docker load < centos7               #载入centos7镜像
[root@docker ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              75835a67d134        2 years ago         200MB


image.png


2.宿主机发布软件源


因为镜像创建的时候需要使用 yum 安装软件包,所以宿主机使用 http 方式,发布软件源,软件源为 centos7 光盘


1)宿主机安装并开启 http 服务


挂载光盘,配置本地yum源


[root@docker ~]# yum -y install httpd && systemctl start httpd


2)创建共享目录

[root@docker ~]# cd /var/www/html/
[root@docker html]# mkdir centos7
[root@docker html]# mount /dev/cdrom centos7/


image.png


3)使用浏览器访问测试


image.png


二、部署 Nginx 容器



Nginx 是一款轻量级的 Web 服务器,也是一款优秀的反向代理服务器。Nginx 服务占用内存少,并发能力强。


1.建立工作目录


[root@docker ~]# mkdir nginx
[root@docker ~]# cd nginx/
[root@docker nginx]# ls
nginx-1.12.0.tar.gz


image.png


2.创建并编写 Dockerfile 文件


[root@docker nginx]# vim Dockerfile
#基础镜像
FROM centos
#维护该镜像的用户信息
MAINTAINER zhangsan
#设置本地yum源
RUN rm -rf /etc/yum.repos.d/*
ADD CentOS7.repo /etc/yum.repos.d/
#安装相关依赖包
RUN yum -y install proc-devel net-tools gcc zlib zlib-devel make openssl-devel
#传入Nginx软件包并解压
COPY nginx-1.12.0.tar.gz /
RUN tar zxf /nginx-1.12.0.tar.gz
#切换目录
WORKDIR /nginx-1.12.0
#编译安装
RUN ./configure --prefix=/usr/local/nginx && make && make install
#开启端口
EXPOSE 80
EXPOSE 443
#修改Nginx文件,以非daemon方式启动
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
#复制启动脚本
ADD run.sh /
RUN chmod 755 /run.sh
#运行启动脚本
CMD ["/run.sh"]


3.编写执行脚本内容


[root@docker nginx]# vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx


4.编写 yum 源文件


[root@docker nginx]# vim CentOS7.repo
[zhangsan]
name=lisi
baseurl=http://192.168.1.1/centos7
enabled=1
gpgcheck=0


5.生成镜像


[root@docker nginx]# docker build -t nginx:v1 .
[root@docker nginx]# docker images | grep nginx 


image.png


6.运行容器进行测试


[root@docker nginx]# docker run -d --name nginx -P nginx:v1
[root@docker nginx]# docker ps | grep nginx


image.png


7.访问测试


image.png


三、部署 Tomcat 容器



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


1.创建工作目录,并拖入相关软件


[root@docker ~]# mkdir tomcat
[root@docker ~]# cd tomcat/
[root@docker tomcat]# ls
apache-tomcat-8.5.16.tar.gz  jdk-8u91-linux-x64.tar.gz
[root@docker tomcat]# tar zxf jdk-8u91-linux-x64.tar.gz 
[root@docker tomcat]# ls
apache-tomcat-8.5.16.tar.gz  jdk1.8.0_91  jdk-8u91-linux-x64.tar.gz


image.png


2.编写 Dockerfile 文件


[root@docker tomcat]# vim Dockerfile
FROM centos
MAINTAINER zhangsan
#给JDK设置变量
ADD jdk1.8.0_91 /usr/local/java
ENV JAVA_HOME /usr/local/java
ENV JAVA_BIN /usr/local/java/bin
ENV JRE_HOME /usr/local/java/jre
ENV PATH $PATH:/usr/local/java/bin/:/usr/local/java/jre/bin
ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar
#传入Tomcat软件包
COPY apache-tomcat-8.5.16.tar.gz /
RUN tar zxf /apache-tomcat-8.5.16.tar.gz
#将解压后文件移动位置,重命名为tomcat
RUN mv /apache-tomcat-8.5.16 /usr/local/tomcat
#开启80端口
EXPOSE 80
#复制启动脚本
ADD run.sh /
RUN chmod 755 /run.sh
#运行启动脚本
CMD ["/run.sh"]


3.编写执行脚本内容


[root@docker tomcat]# vim run.sh
#!/bin/bash
/usr/local/tomcat/bin/startup.sh
tailf /run


4.生成镜像文件


[root@docker tomcat]# docker build -t tomcat:v8 .
[root@docker tomcat]# docker images | grep tomcat
tomcat              v8                  cbd7da73476b        11 seconds ago      601MB


image.png


5.运行容器进行测试


[root@docker tomcat]# docker run -d --name tomcat -p 1314:8080 tomcat:v8
[root@docker tomcat]# docker ps | grep tomcat


image.png


6.访问验证


image.png


四、部署 Mariadb 容器



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


1.创建工作目录


[root@docker ~]# mkdir mariadb
[root@docker ~]# cd mariadb/


image.png


2.编写 Dockerfile 文件


[root@docker mariadb]# vim Dockerfile
#设置基础镜像
FROM centos
#维护该镜像的用户信息
MAINTAINER zhangsan
#设置本地yun源
RUN rm -rf /etc/yum.repos.d/*
ADD CentOS7.repo /etc/yum.repos.d/
#安装mariadb数据库
RUN yum -y install mariadb-server mariadb net-tools
ADD resolveip /usr/libexec/
#设置环境变量,便于管理
ENV MARIADB_USER root
ENV MARIADB_PASS 123456
#让容器支持中文
ENV LC_ALL en_US.UTF-8
#初始化数据库
ADD db_init.sh /
RUN chmod 775 /db_init.sh
RUN /db_init.sh
#导出端口
EXPOSE 3306
#添加启动文件
ADD run.sh /
RUN chmod 775 /run.sh
#设置默认启动命令
CMD ["/run.sh"]


3.创建其他相关文件


1)编写初始化配置文件


[root@docker mariadb]# vim db_init.sh
#!/bin/bash
#初始化mariadb
mysql_install_db --user=mysql
#sleep3的意思是停止3秒,再运行下面的
sleep 3
#启动mariadb服务
mysqld_safe &
sleep 3
#设置root用户密码,这里变量是刚刚Dockerfile文件中的
mysql -e "use mysql; grant all privileges on *.* to '$MARIADB_USER'@'%' identified by '$MARIADB_PASS' with grant option;"
h=$(hostname)
mysql -e "use mysql; update user set password=password('$MARIADB_PASS') where user='$MARIADB_USER' and host='$h';"
#刷新策略
mysql -e "flush privileges;"


2)编写启动文件


[root@docker mariadb]# vim run.sh
#!/bin/bash
mysqld_safe


3)复制 Mariadb 初始化文件


[root@docker mariadb]# yum -y mariadb mariadb-server
[root@docker mariadb]# cp /usr/bin/resolveip .


4)编写 yum 源文件


[root@docker mariadb]# cp /root/nginx/CentOS7.repo .


4.生成镜像文件


[root@docker mariadb]# docker build -t mariadb:mariadb .
[root@docker mariadb]# docker images
mariadb             mariadb             563bef62db6b        9 seconds ago       431MB


image.png


5.运行容器进行测试


[root@docker mariadb]# docker run -d --name mariadb -p 13306:3306 mariadb:mariadb
[root@docker mariadb]# docker ps -a | grep mariadb


image.png


6.宿主机连接容器中的数据库


[root@docker mariadb]# mysql -uroot -p123456 -h 192.168.1.1 -P13306


image.png

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
7天前
|
缓存 Java 应用服务中间件
nginx的正向代理和反向代理以及tomcat
Nginx的正向代理和反向代理功能在不同的场景中具有重要作用,正向代理主要用于客户端访问控制和匿名浏览,而反向代理则用于负载均衡和高可用性服务。Tomcat作为Java Web应用服务器,与Nginx结合使用,可以显著提升Web应用的性能和稳定性。通过合理配置Nginx和Tomcat,可以构建高效、稳定和可扩展的Web服务架构。
75 11
|
2月前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
201 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
1月前
|
Java 应用服务中间件 Docker
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
34 2
|
2月前
|
Java Linux Docker
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
49 3
|
2月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
2月前
|
持续交付 开发者 Docker
掌握Docker容器化技术,加速软件开发与部署
掌握Docker容器化技术,加速软件开发与部署
55 0
|
3月前
|
安全 应用服务中间件 网络安全
Tomcat如何配置PFX证书?
【10月更文挑战第2天】Tomcat如何配置PFX证书?
269 7
|
3月前
|
存储 算法 应用服务中间件
Tomcat如何配置JKS证书?
【10月更文挑战第2天】Tomcat如何配置JKS证书?
416 4
|
5月前
|
网络协议 Java 应用服务中间件
tomcat配置域名及HTTPS
tomcat配置域名及HTTPS