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)。