单机服务搭建

igxiaoshan Lv5

vagrant安装虚拟机

初始化一个centos/7

1
2
3
4
## 使用vagrant命令
vagrant init centos/7

## 该命令会创建一个 [Vagrantfile] 文件

启动虚拟机

1
2
3
4
5
## 启动虚拟机
vagrant up

## 连接虚拟机
vagrant ssh

配置固定网络

修改 [VagrantFile] 文件

1
2
3
4
5
6
config.vm.network "private_network", ip: "192.168.56.101"

## 修改 ip地址为本机 virtualBox 网路地址

## 终端重启服务,配置生效
vagrant reload

开启 root登录 , 22(端口) 连接

1
2
3
4
5
6
vi /etc/ssh/sshd_config

## 修改 配置文件
PermitRootLogin yes ## root登录

PasswordAuthentication yes ## 密码登录

配置网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## 进入到配置目录
cd /etc/sysconfig/network-scripts

## 修改eth0 网卡文件
vi ifcfg-eth0
修改内容:
GETWAY=192.168.56.1
DNS1=114.114.114.114
DNS2=8.8.8.8

## 保存重启
esc
:wq
service network restart

设置虚拟机 yum源

1
2
3
4
5
6
7
8
# 备份 yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 使用新 yum 源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

# 生成缓存
yum makecache

安装JDK 1.8

创建 /mydata/jdk文件夹

在oracle官网下载 jdk8 tar.gz压缩包

上传到 /mydata/jdk 文件夹下,并解压出来

配置jdk运行环境

1
2
3
4
5
6
7
8
9
## 配置运行环境
vi /etc/profile

export JAVA_HOME=/mydata/jdk/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

1
2
3
4
5
6
7
8
9
10
11
12
# 更新配置
source /etc/profile

# 查看JAVA_HOME
echo $JAVA_HOME

# 查看PATH
echo $path

# 查看版本信息
java -version

安装nginx

创建 /mydata/nginx 文件夹

下载nginx

1
2
3
4
5
6
7
8
9
## 安装之前检查是否有安装过
nginx find-name nginx 1


## 下载安装包(最好在自己自定义的文件夹下下载压缩包)
wget http://nginx.org/download/nginx-1.20.2.tar.gz

-bash: wget: command not found
## 命令不存在,见附录

解压,安装,启动

1
2
3
4
5
6
7
8
9
10
11
12
13
## 解压文件
tar -zxvf nginx-1.20.2.tar.gz

## 进入nginx目录
cd ./nginx-1.20.2

## 配置
./configure --prefix=/usr/local/nginx

## 编译
make
make install

服务启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
## 启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# -c参数指定了要加载的nginx配置文件路径

# 重新加载配置
/usr/local/nginx/sbin/nginx -s reload

# 停止
/usr/local/nginx/sbin/nginx -s stop

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

./nginx -c /opt/app/nginx/conf/nginx.conf

安装Docker

安装版本需求

centos7/linux 内核3.10以上

1
2
## 查看内核版本
uname -r

移除以前的docker相关包

1
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

配置yum源

1
2
3
4
## 注意:在安装之前需要确定网络配置,见附录
yum install -y yum-utils

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

安装docker

1
sudo yum install -y docker-ce docker-ce-cli containerd.io

启动命令

1
2
3
4
5
6
7
8
## 开机自启,并且现在开启
systemctl enable docker --now

## 启动docker
systemctl start docker

## 开机自启
systemctl enable docker

配置阿里云加速

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://lljn1hsm.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker部署mysql,redis….

部署一个redis中间件

  • 拉取镜像

    1
    2
    docker pull redis
    ## 注:不使用镜像号,默认使用最新的镜像
  • 启动镜像

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    # redis使用自定义配置文件启动

    docker run -v /data/redis/redis.conf:/etc/redis/redis.conf \
    -v /data/redis/data:/data \
    -d --name redis \
    -p 6379:6379 \
    redis:latest redis-server /etc/redis/redis.conf


部署nacos

  • 下载官方压缩包
    • 用的1.3得包
  • 解压到本地目录下
    • /mydata/nacos
  • 启动服务
    • sh startup.sh -m standalone

dockerfile部署应用

使用docker部署应用

  • 应用打包

    • springboot –> mvn –> package
  • target 上传到服务器

    1
    2
    3
    4
    5
    6
    ## 服务器命令
    [root@localhost service-hosp]# pwd
    /mydata/app/syt/service-hosp
    [root@localhost service-hosp]# ls
    Dockerfile target
    [root@localhost service-hosp]#
  • 编写dockerfile文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FROM openjdk:8-jdk-slim
    LABEL maintainer=gongshishan

    COPY target/*.jar /app.jar

    ENTRYPOINT ["java","-jar","/app.jar"]

    ## 解释
    FROM openjdk:8-jdk-slim # 必须; from 跟着的是应用的基础环境,本文用的是java,所以用的是openjdk

  • 构建镜像

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    docker build -t java-demo:v1.0 .

    ## [.] 命令后面的 点 必须;作用是当前目录下的执行

    [root@localhost service-hosp]# docker build -t syt-hosp:v1.0 .
    Sending build context to Docker daemon 92.41MB
    Step 1/4 : FROM openjdk:8-jdk-slim
    8-jdk-slim: Pulling from library/openjdk
    a2abf6c4d29d: Already exists
    2bbde5250315: Pull complete
    115191490c27: Pull complete
    61b680ac8083: Pull complete
    Digest: sha256:25efb6e0609b95af243b4e3ce2c27dbc1022ef2a4db2164b7afa066c0db18137
    Status: Downloaded newer image for openjdk:8-jdk-slim
    ---> 9afd0fe33df7
    Step 2/4 : LABEL maintainer=gongshishan
    ---> Running in fe44d7ea6368
    Removing intermediate container fe44d7ea6368
    ---> 578c902545a1
    Step 3/4 : COPY target/*.jar /app.jar
    ---> 9e7edc0d660b
    Step 4/4 : ENTRYPOINT ["java","-jar","/app.jar"]
    ---> Running in c8cf1f8a3293
    Removing intermediate container c8cf1f8a3293
    ---> 2e57c5151161
    Successfully built 2e57c5151161
    Successfully tagged syt-hosp:v1.0

  • 查看镜像

    1
    2
    3
    4
    5
    6
    [root@localhost service-hosp]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    syt-hosp v1.0 2e57c5151161 4 minutes ago 388MB
    openjdk 8-jdk-slim 9afd0fe33df7 7 months ago 296MB
    redis latest 7614ae9453d1 7 months ago 113MB
    mysql 5.7 c20987f18b13 7 months ago 448MB
  • 运行

    1
    docker run -d -p 18007:18007 --name syt-hosp syt-hosp:v1.0 

扩展

docker 分享镜像

  • 查看自己的镜像,把需要的镜像推送到自己的docker厂库

    1
    2
    3
    4
    5
    6
    7
    8
    ## 登录镜像
    docker login

    ## 给镜像重新打个标签,必须是以自己的docker名开头
    docker tag syt-hosp igsshan/syt-hosp

    ## 推送厂库
    docker push igsshan/syt-hosp

附录

-bash: wget: command not found

wget 不存在,需要自己安装

1
2
## 安装 wget
yum -y install wget

网络配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
## 进入到配置目录
cd /etc/sysconfig/network-scripts

## 修改eth0 网卡文件
vi ifcfg-eth0
修改内容:
GETWAY=192.168.56.1
DNS1=114.114.114.114
DNS2=8.8.8.8

## 保存重启
esc
:wq
service network restart

## 设置yum源
# 备份yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 使用新 yum 源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

# 生成缓存
yum makecache