需要依次对服务器进行Docker容器安装
安装步骤:
- 更新yum update
2、yum install -y yum-utils device-mapper-persistent-data lvm2
3、yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(
//当3docker数据源网络不好时,用阿里云代替
sudo rm -f /etc/yum.repos.d/docker-ce.repo
sudo tee /etc/yum.repos.d/docker.repo <<EOF
[docker-ce]
name=Docker CE
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
enabled=1
EOF
)
- yum install -y docker-ce-20.10.7-3.el7
(
//也或者用下两行代替
sudo yum makecache fast
sudo yum install docker-ce
)
5 systemctl start docker
6、systemctl enable docker
7、systemctl status docker
-
-
-
- Postgres数据库部署
-
-
- 创建数据持久化目录
mkdir /software/pgdata
- 运行容器
docker run --name postgis -e POSTGRES_PASSWORD='postgresPassword' -e ALLOW_IP_RANGE=0.0.0.0/0 -p 15432:5432 -v /software/pgdata:/var/lib/postgresql/data -d --privileged=true postgis/postgis:12-3.2
//如果pull失败,配置如下镜像加速器再pull
//
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
//
- 修改配置远程连接
vi /software/pgdata/pg_hba.conf
内容如下:
host all all 0.0.0.0 0.0.0.0 md5
vi /software/pgdata/postgresql.conf
内容如下:
listen_addresses = '*' # *表示监听所有地址
port = 5432 # 监听端口
max_connections = 1000 # 指定最大连接数
tcp_keepalives_idle = 60
tcp_keepalives_interval = 10
tcp_keepalives_count = 10
shared_buffers = 1GB # 设置共享内存缓冲区的内存量,建议值为系统总内存的25%
temp_buffers = 80MB # 设置用于每个数据库会话中的临时缓冲区的最大内存量
max_files_per_process = 65535 # 设置允许每个服务器子进程同时打开的文件的最大数量。不能大于ulimt -n的数值
bgwriter_delay = 100ms
bgwriter_lru_maxpages = 1000
bgwriter_flush_after = 0
synchronous_commit = off
wal_level = replica
archive_mode = on
- 重启容器
docker restart postgis
-
-
-
- mysql服务器部署
-
-
1、wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
2、rpm -ivh mysql57-community-release-el7-9.noarch.rpm
3、cd /etc/yum.repos.d/
4、rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
5、yum install mysql-server
6、touch /etc/my.cnf
7、vi /etc/my.cnf
文件内容:
[mysqld]
port = 3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
symbolic-links=0
max_allowed_packet = 16M
join_buffer_size = 128M
sort_buffer_size = 16M
read_rnd_buffer_size = 16M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-server = utf8
explicit_defaults_for_timestamp=true
default_time_zone = '+8:00'
[mysql]
default-character-set = utf8
[client]
port = 3306
socket=/var/lib/mysql/mysql.sock
default-character-set = utf8
8、systemctl start mysqld
9、systemctl status mysqld
10、查看数据库临时密码
cat /var/log/mysqld.log | grep password
11、连接数据库 mysql -uroot -p
然后输入密码
12、修改密码
alter user 'root'@'localhost' identified by 'postgresP@ssw0rd';
13、开启数据库远程连接权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'postgresP@ssw0rd';
14、刷新数据库权限
FLUSH PRIVILEGES;
-
-
-
- Redis服务器部署
-
-
安装步骤:
- 创建redis数据持久化目录
mkdir /gsafetyserver/redis/conf
mkdir /gsafetyserver/redis/data
- 创建redis.conf文件并放入/gsafetyserver/redis/conf下
redis.conf内容如下:
# 开启密码验证(可选)
requirepass tg123456
# 关闭保护模式(可选)
protected-mode no
# 注释掉daemonize yes,或者配置成daemonize no。因为该配置和docker run中的-d参数冲突,会导致容器一直启动失败
daemonize no
# 开启Redis数据持久化(可选)
appendonly yes
- 运行redis镜像
docker run -itd --name redis -p 6379:6379 --restart=always -v /gsafetyserver/redis/conf/redis.conf:/etc/redis/redis.conf -v /gsafetyserver/redis/data:/data --privileged redis:5.0.5 redis-server /etc/redis/redis.conf 4、验证redis密码是否设置
redis-cli
auth tg123456
出现ok设置成功
-
-
-
- 消息中间件部署
-
-
安装步骤:
- 下载镜像
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka:2.13-2.7.0
- 启动服务
启动Zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
启动Kafka
docker run -d --name kafka --publish 9092:9092 \
--env KAFKA_ZOOKEEPER_CONNECT=XX.XX.XX.XX:2181 \
--env KAFKA_ADVERTISED_HOST_NAME=XX.XX.XX.XX \
--env KAFKA_ADVERTISED_PORT=9092 \
wurstmeister/kafka:2.13-2.7.0
备注:xx.xx.xx.xx 为本机服务器内网ip地址
-
-
-
- nacos注册中心部署
-
-
- 下载镜像
docker pull nacos/nacos-server:v2.2.0
- 初始化Mysql数据库
上传nacos_config.sql文件到数据库服务器
连接数据库
mysql -uroot -p
输入密码
执行命令:source nacos_config.sql;
- 创建数据持久化目录
mkdir nacos/logs
- 启动nacos服务
docker run --name nacos -d -p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e PREFER_HOST_MODE=ip \
-e MYSQL_SERVICE_HOST=xx.xx.xx.xx \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
-e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false" \
-v 映射目录绝对路径:/home/nacos/logs \
nacos/nacos-server:v2.2.0
备注:xx.xx.xx.xx为数据库服务器内网IP
- 验证服务是否正常
用户名/密码:nacos/Tcrise@123!
-
-
-
- Nginx部署
-
-
- 下载依赖
yum -y install pcre-devel zlib-devel gcc openssl openssl-devel wget
2、下载安装包
wget http://nginx.org/download/nginx-1.24.0.tar.gz
- 解压安装包
tar -zxvf nginx-1.24.0.tar.gz && cd nginx-1.24.0
- 编译安装
./configure --user=nobody --group=nobody --prefix=/gsafetyserver/nginx --with-http_ssl_module --with-http_sub_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream
make && make install
cd /gsafetyserver
rm -rf nginx-1.24.0.tar.gz
mv nginx-1.24.0 nginx
- 创建启动systemctl启动文件
touch /lib/systemd/system/nginx.service
文件内容:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/gsafetyserver/nginx/sbin/nginx -c /gsafetyserver/nginx/conf/nginx.conf
ExecReload=/gsafetyserver/nginx/sbin/nginx -s reload
ExecStop=/gsafetyserver/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 启动nginx
systemctl start nginx - 创建软连接
ln -s /gsafetyserver/nginx/sbin/nginx /usr/bin/nginx
chmod -R 755 /usr/bin/nginx
rm -rf /gsafetyserver/nginx/nginx-1.24.0
nginx配置文件/gsafetyserver/nginx/conf