当前位置:实例文章 » 其他实例» [文章]Dockerfile构建SSH、Systemctl、Nginx、Tomcat、MySQL镜像实验

Dockerfile构建SSH、Systemctl、Nginx、Tomcat、MySQL镜像实验

发布人:shili8 发布时间:2024-11-19 15:36 阅读次数:0

**Dockerfile 构建 SSH、Systemctl、Nginx、Tomcat、MySQL 镜像实验**

在本文中,我们将一步步地构建一个包含 SSH、Systemctl、Nginx、Tomcat 和 MySQL 的 Docker 镜像。这个镜像将能够提供一个完整的 Web 应用环境,包括 Web服务器(Nginx)、应用服务器(Tomcat)和数据库管理系统(MySQL)。

### **Step1: 安装基本依赖**

首先,我们需要安装基本的 Linux 系统和必要的包。

dockerfile# 基于 Ubuntu20.04 LTS 构建镜像FROM ubuntu:20.04# 设置工作目录WORKDIR /app# 安装基本依赖RUN apt update && 
 apt install -y curl wget vim git net-tools htop iftop ntpdate && 
 rm -rf /var/lib/apt/lists/*


### **Step2: 安装 SSH**

接下来,我们需要安装 OpenSSH。

dockerfile# 安装 OpenSSHRUN apt-get update && 
 apt-get install -y openssh-server && 
 mkdir -p /var/run/sshd && 
 echo "root:password" | chpasswd && 
 sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config


### **Step3: 安装 Systemctl**

Systemctl 是一个用于管理系统服务的工具。

dockerfile# 安装 systemdRUN apt-get update && 
 apt-get install -y systemd && 
 systemctl enable sshd.service


### **Step4: 安装 Nginx**

Nginx 是一个高性能的 Web服务器。

dockerfile# 安装 NginxRUN apt-get update && 
 apt-get install -y nginx && 
 mkdir -p /var/www/html && 
 echo "Hello, World!" > /var/www/html/index.html


### **Step5: 安装 Tomcat**

Tomcat 是一个 Java 应用服务器。

dockerfile# 安装 OpenJDKRUN apt-get update && 
 apt-get install -y openjdk-11-jdk && 
 mkdir -p /usr/local/tomcat && 
 echo "export CATALINA_HOME=/usr/local/tomcat" >> /etc/bash.bashrc# 下载 TomcatRUN wget  && 
 tar -xvf apache-tomcat-9.0.65.tar.gz && 
 mv apache-tomcat-9.0.65 /usr/local/tomcat# 配置 TomcatRUN sed -i 's/8080/80/' /usr/local/tomcat/conf/server.xml && 
 echo "export CATALINA_HOME=/usr/local/tomcat" >> /etc/bash.bashrc


### **Step6: 安装 MySQL**

MySQL 是一个关系型数据库管理系统。

dockerfile# 安装 MySQLRUN apt-get update && 
 apt-get install -y mysql-server && 
 mkdir -p /var/lib/mysql && 
 echo "export MYSQL_HOME=/usr/bin" >> /etc/bash.bashrc# 配置 MySQLRUN sed -i 's/3306/80/' /etc/mysql/my.cnf && 
 echo "export MYSQL_HOME=/usr/bin" >> /etc/bash.bashrc


### **Step7: 构建镜像**

最后,我们可以使用 Dockerfile 构建一个包含所有依赖的镜像。

dockerfile# 构建镜像FROM ubuntu:20.04# 设置工作目录WORKDIR /app# 安装基本依赖RUN apt update && 
 apt install -y curl wget vim git net-tools htop iftop ntpdate && 
 rm -rf /var/lib/apt/lists/*

# 安装 SSHRUN apt-get update && 
 apt-get install -y openssh-server && 
 mkdir -p /var/run/sshd && 
 echo "root:password" | chpasswd && 
 sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config# 安装 SystemctlRUN apt-get update && 
 apt-get install -y systemd && 
 systemctl enable sshd.service# 安装 NginxRUN apt-get update && 
 apt-get install -y nginx && 
 mkdir -p /var/www/html && 
 echo "Hello, World!" > /var/www/html/index.html# 安装 TomcatRUN apt-get update && 
 apt-get install -y openjdk-11-jdk && 
 mkdir -p /usr/local/tomcat && 
 echo "export CATALINA_HOME=/usr/local/tomcat" >> /etc/bash.bashrcRUN wget  && 
 tar -xvf apache-tomcat-9.0.65.tar.gz && 
 mv apache-tomcat-9.0.65 /usr/local/tomcatRUN sed -i 's/8080/80/' /usr/local/tomcat/conf/server.xml && 
 echo "export CATALINA_HOME=/usr/local/tomcat" >> /etc/bash.bashrc# 安装 MySQLRUN apt-get update && 
 apt-get install -y mysql-server && 
 mkdir -p /var/lib/mysql && 
 echo "export MYSQL_HOME=/usr/bin" >> /etc/bash.bashrcRUN sed -i 's/3306/80/' /etc/mysql/my.cnf && 
 echo "export MYSQL_HOME=/usr/bin" >> /etc/bash.bashrc# 构建镜像CMD ["bash"]


### **Step8: 运行镜像**

最后,我们可以使用 Docker run 命令运行这个镜像。

bashdocker run -it --name myapp -p80:80 -p22:22 myapp /bin/bash


在本文中,我们一步步地构建了一个包含 SSH、Systemctl、Nginx、Tomcat 和 MySQL 的 Docker 镜像。这个镜像将能够提供一个完整的 Web 应用环境,包括 Web服务器(Nginx)、应用服务器(Tomcat)和数据库管理系统(MySQL)。

相关标签:nginxtomcat运维sshmysql
其他信息

其他资源

Top