安装部署docker 和docker-compose
#卸载旧版本
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2# 官方yum源
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo# 阿里云yum源
sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装docker引擎(指定20.10.24版本)
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io# 启动Docker服务
sudo systemctl start docker
# 设置Docker开机自启
sudo systemctl enable docker
#查看Docker服务的状态
sudo systemctl status docker#添加镜像加速器
# 创建目录
mkdir -p /etc/docker
# 复制内容
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com","https://mirrors.tuna.tsinghua.edu.cn","http://mirrors.sohu.com","https://ustc-edu-cn.mirror.aliyuncs.com","https://2yzmpomi.mirror.aliyuncs.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.awsl9527.cn","https://do.nark.eu.org","https://dc.j8.work","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://docker.1panel.live/","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud"]
}
{"dns": ["8.8.8.8", "8.8.4.4"]
}
EOF
# 重新加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker#通过运行hello-world 映像来验证是否正确安装了Docker Engine 。
sudo docker run hello-world#显示 Docker 系统信息
docker info#安装docker-compose 编排容器工具
#打开github 下载地址:https://github.com/docker/compose/releases/
#上传服务器/usr/bin/目录下面 并改名为docker-compose
mv 文件 /usr/bin/docker-compose
#赋予执行权限
sudo chmod +x /usr/bin/docker-compose
#检查是否安装成功
docker-compose -v
命令版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com","https://mirrors.tuna.tsinghua.edu.cn","http://mirrors.sohu.com","https://ustc-edu-cn.mirror.aliyuncs.com","https://2yzmpomi.mirror.aliyuncs.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.awsl9527.cn","https://do.nark.eu.org","https://dc.j8.work","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://docker.1panel.live/","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud"]
}
{"dns": ["8.8.8.8", "8.8.4.4"]
}
EOF
systemctl daemon-reload
systemctl restart docker
sudo docker run hello-world
docker-compose编排mysql 、tomcat 、nginx 、redis脚本
#!/bin/bashmkdir my_project
cd my_projectcat > docker-compose.yml <<EOF
version: '3'
services:mysql:image: mysql:5.7container_name: mysqlenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: mydatabasevolumes:- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sqlports:- "3306:3306"tomcat:image: tomcat:9.0container_name: tomcatvolumes:- ./tomcat/webapps:/usr/local/tomcat/webappsports:- "8080:8080"depends_on:- mysqlnginx:image: nginx:latestcontainer_name: nginxvolumes:- ./nginx/default.conf:/etc/nginx/conf.d/default.confports:- "8084:8084"depends_on:- tomcatredis:image: redis:latestcontainer_name: redisvolumes:- ./redis/redis.conf:/usr/local/etc/redis/redis.confports:- "6379:6379"
EOFmkdir -p nginx
cat > nginx/default.conf <<EOF
server {listen 8084;server_name localhost;location / {proxy_pass http://tomcat:8080;proxy_set_header Host \$host;proxy_set_header X-Real-IP \$remote_addr;proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto \$scheme;}
}
EOFmkdir -p tomcat/webapps/ROOT/
cat > tomcat/webapps/ROOT/index.jsp <<EOF
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Hello World</title>
</head>
<body><h1>Hello, World!</h1>
</body>
</html>
EOFmkdir -p mysql
cat > mysql/init.sql <<EOF
CREATE DATABASE IF NOT EXISTS mydatabase;
USE mydatabase;
CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL
);
EOFmkdir -p redis
cat > redis/redis.conf <<EOF
bind 0.0.0.0
protected-mode no
port 6379
EOFdocker-compose up -d
项目搭建
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#查看当前防火墙开放的端口
sudo firewall-cmd --list-ports
#将端口 8081 添加到防火墙的 public 区域,并且设置为永久生效。
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
#重新加载防火墙配置,使新的规则生效。
sudo firewall-cmd --reload#关闭selinux 安全策略
# 临时
setenforce 0
# 永久 注意需要重启才能生效。
sed -i 's/enforcing/disabled/' /etc/selinux/config #进入tomcat ROOT目录
cd tomcat/webapps/ROOT/
#在里面部署自己的项目
浏览器访问 主机IP:8080 就可以访问自己搭建的项目