成都平面设计公司排行/北仑seo排名优化技术
此脚本包含拉取镜像、数据卷挂载、容器启动三大部分,可一键式安装三大环境
新建一个depoy.sh文件在服务器上,然后复制以下内容。
给脚本文件添加执行权限
chmod +x depoy.sh # 文件的当前目录下
如果需要修改数据库MYSQL密码和Reids密码
MYSQL_ROOT_PASSWORD="1459Hyh."
requirepass 1459Hyh.
#!/bin/bash# 1️⃣ 检查是否安装 Docker & Docker Compose
echo "📌 检查 Docker 是否已安装..."
if ! command -v docker &> /dev/null; thenecho "❌ Docker 未安装,正在安装..."sudo apt update && sudo apt install -y docker.iosudo systemctl start docker && sudo systemctl enable docker
elseecho "✅ Docker 已安装"
fi# 设置 MySQL 相关参数
MYSQL_VERSION="8.0"
MYSQL_CONTAINER_NAME="mysql"
MYSQL_ROOT_PASSWORD="1459Hyh."
MYSQL_PORT=3306
MYSQL_DATA_DIR="/temp/mysql/data"
MYSQL_CONF_DIR="/temp/mysql/conf"
MYSQL_CONF_FILE="$MYSQL_CONF_DIR/my.cnf"# 设置 Redis 相关参数
REDIS_VERSION="7"
REDIS_CONTAINER_NAME="redis"
REDIS_PORT=6379
REDIS_DATA_DIR="/temp/redis/data"
REDIS_CONF_DIR="/temp/redis/conf"
REDIS_CONF_FILE="$REDIS_CONF_DIR/redis.conf"# 设置 Nginx 相关参数
NGINX_VERSION="latest"
NGINX_CONTAINER_NAME="nginx"
NGINX_PORT=80
NGINX_CONF_DIR="/temp/nginx/conf"
NGINX_LOG_DIR="/temp/nginx/logs"
NGINX_HTML_DIR="/temp/nginx/html"
NGINX_CONF_FILE="$NGINX_CONF_DIR/default.conf"# 创建目录
echo "Creating directories..."
mkdir -p $MYSQL_DATA_DIR $MYSQL_CONF_DIR
mkdir -p $REDIS_DATA_DIR $REDIS_CONF_DIR
mkdir -p $NGINX_CONF_DIR $NGINX_LOG_DIR $NGINX_HTML_DIR# 生成 MySQL 配置文件
echo "Generating MySQL configuration..."
cat > $MYSQL_CONF_FILE <<EOF
[mysqld]
bind-address = 0.0.0.0
default_authentication_plugin = mysql_native_password
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
EOF# 生成 Redis 配置文件
echo "Generating Redis configuration..."
cat > $REDIS_CONF_FILE <<EOF
bind 0.0.0.0
protected-mode no
requirepass 1459Hyh.
appendonly yes
EOF# 生成 Nginx 配置文件
echo "Generating Nginx configuration..."
cat > $NGINX_CONF_FILE <<EOF
server {listen 80;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;
}
EOF# 移除已有容器
echo "Removing existing containers if they exist..."
docker stop $MYSQL_CONTAINER_NAME $REDIS_CONTAINER_NAME $NGINX_CONTAINER_NAME >/dev/null 2>&1
docker rm $MYSQL_CONTAINER_NAME $REDIS_CONTAINER_NAME $NGINX_CONTAINER_NAME >/dev/null 2>&1# 拉取镜像
echo "Pulling Docker images..."
docker pull mysql:$MYSQL_VERSION
docker pull redis:$REDIS_VERSION
docker pull nginx:$NGINX_VERSION# 启动 MySQL
echo "Starting MySQL..."
docker run -d \--name $MYSQL_CONTAINER_NAME \-p $MYSQL_PORT:3306 \-v $MYSQL_DATA_DIR:/var/lib/mysql \-v $MYSQL_CONF_FILE:/etc/mysql/my.cnf \-e MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD \--restart=always \mysql:$MYSQL_VERSION# 启动 Redis
echo "Starting Redis..."
docker run -d \--name $REDIS_CONTAINER_NAME \-p $REDIS_PORT:6379 \-v $REDIS_DATA_DIR:/data \-v $REDIS_CONF_FILE:/etc/redis/redis.conf \--restart=always \redis:$REDIS_VERSION \redis-server /etc/redis/redis.conf# 启动 Nginx
echo "Starting Nginx..."
docker run -d \--name $NGINX_CONTAINER_NAME \-p $NGINX_PORT:80 \-v $NGINX_CONF_FILE:/etc/nginx/conf.d/default.conf \-v $NGINX_LOG_DIR:/var/log/nginx \-v $NGINX_HTML_DIR:/usr/share/nginx/html \--restart=always \nginx:$NGINX_VERSIONecho "All services started successfully!"