安装docker

先设置yum源

# 备份本地yum源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
# 下载阿里云yum源
wget -O /etc/yum.repos.d/CenOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 清除旧缓存
yum clean all
# 创建新缓存
yum makecache
# 更新yum
yum update -y

安装docker

卸载旧版本

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源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

安装docker。通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1

yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io

启动Docker,命令:systemctl start docker,然后加入开机启动

systemctl start docker
systemctl enable docker

验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

安装docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

安装openjdk

方式一:

yum clean
yum install java-1.8.0-openjdk -y
yum install java-1.8.0-openjdk-devel -y

查看java安装到哪里了

rpm -qa | grep java
rpm -ql java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64

修改环境变量

vi /etc/profile
# 文件最后追加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

使配置即时生效:

source /etc/profile
java -version

方式二:

mkdir -p /usr/lib/java
tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /usr/lib/java

修改环境变量

vi /etc/profile
# 文件最后追加:
export JAVA_HOME=/usr/lib/java/java-se-8u41-ri
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

使配置即时生效

source /etc/profile
java -version

安装maven

安装

mkdir -p /usr/local/maven
cp apache-maven-3.6.3-bin.tar.gz /usr/local/maven
cd /usr/local/maven
tar -zxvf apache-maven-3.6.3-bin.tar.gz

配置

vi /etc/profile
文件最后追加:
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=${MAVEN_HOME}/bin:$PATH

使配置即时生效:

source /etc/profile

安装mysql

mkdir /home/vagrant/mysql

docker run -d --name mysql -p 3306:3306 --restart=always \
-v /home/vagrant/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.25

安装redis

mkdir -p /home/vagrant/redis/conf

touch /home/vagrant/redis/conf/redis.conf

docker run -d -p 6379:6379 --restart=always \
-v /home/vagrant/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
--name redis redis:4.0.14

安装nginx

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0

./configure
# 或者自定义配置
./configure \
--prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/usr/local/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module --with-http_ssl_module

make
make install

cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload

设置nginx开机启动(可选)

# 设置开机启动
vi /etc/rc.local
增加一行:
/usr/local/nginx/sbin/nginx
chmod 755 /etc/rc.local

nginx使用systemctl来管理(可选)

在/usr/lib/systemd/system目录下创建nginx.service文件,vi /usr/lib/systemd/system/nginx.service

nginx.service文件内容如下

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
# KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
# Restart=always

[Install]
WantedBy=multi-user.target

停止原来的nginx服务

// 一定不要使用systemctl停止Nginx,失效
/usr/local/nginx/sbin/nginx -s stop

重载systemctl命令

systemctl daemon-reload

启动nginx服务并配置开机启动

systemctl start nginx
systemctl enable nginx

nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

nginx.conf文件内容如下

#user  nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

include /usr/local/nginx/conf/conf.d/*.conf;
}


vim /usr/local/nginx/conf/conf.d/default.conf

default.conf文件内容如下

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

server {
listen 669 ssl;
server_name luxijie.tech;

ssl_certificate /usr/local/nginx/ssl/luxijie.tech.pem;
ssl_certificate_key /usr/local/nginx/ssl/luxijie.tech.key;

location / {
proxy_pass https://192.168.50.2;

#proxy_set_header host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# root html;
index index.html index.htm;
}
}