如何在CentOS Stream 8上部署应用
sudo dnf update -y
sudo dnf groupinstall "Development Tools" -y
sudo dnf install wget vim -y
从应用官方网站获取源码包(如Nginx),或使用wget下载:
wget http://nginx.org/download/nginx-1.22.0.tar.gz
tar -zxvf nginx-1.22.0.tar.gz
cd nginx-1.22.0
根据应用需求调整编译选项(以Nginx为例,开启SSL和HTTP/2模块):
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module
执行make编译源码,再用make install安装到指定目录:
make
sudo make install
创建systemd服务单元文件,实现开机自启和便捷管理:
sudo vi /etc/systemd/system/nginx.service
写入以下内容(根据实际路径调整):
[Unit]
Description=The Nginx HTTP Server
After=network.target
[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存后启用并启动服务:
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx(显示“active (running)”即为成功)。更新系统后,添加Docker官方仓库并安装:
sudo dnf update -y
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce --nobest -y
启动Docker服务并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
创建Dockerfile定义镜像构建规则(以CentOS Stream 8为基础镜像,部署简单Web应用):
FROM centos:stream8
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN yum update -y && yum install -y httpd
COPY ./myapp /var/www/html/ # 将本地应用文件复制到镜像的Web目录
EXPOSE 80 # 暴露HTTP端口
CMD ["httpd", "-DFOREGROUND"] # 启动Apache服务
在Dockerfile所在目录执行以下命令:
# 构建镜像(-t指定镜像名称,.表示当前目录)
docker build -t my-centos-app .
# 运行容器(-p将容器80端口映射到宿主机8080端口,--name指定容器名称)
docker run -d -p 8080:80 --name my-running-app my-centos-app
docker ps(确认容器处于“Up”状态)。http://<服务器IP>:8080),若显示应用页面则成功。sudo firewall-cmd --add-service=nginx --permanent
sudo firewall-cmd --reload
sudo setenforce 0