linux服务器用docker布置程序

1、安装docker

1、环境要求

1.Linux要求内核3.0以上

2.CentOS 7

2、环境查看

#系统内核要求3.0以上
[root@localhost ~]# uname -r
3.10.0-1062.el7.x86_64
#系统版本
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

3、安装

#1.卸载旧版本
yum remove docker \
> docker-client \
> docker-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-engine
#2.需要的安装包
yum install -y yum-utils
#3.设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#上述方法默认是从国外的,不推荐
#推荐使用国内的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新软件包索引
yum makecache fast
#4.安装docker docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io # 这里我们使用社区版即可
#5.启动docker
systemctl start docker
#6.使用docker version 查看是否安装成功
docker version

4、阿里云镜像加速

1、登录阿里云找到容器服务——>镜像加速

 

2、配置使用

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://cdoid6va.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2、安装docker-compose

从github上下载docker-compose二进制文件安装

下载最新版的docker-compose文件

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

若是github访问太慢,可以用daocloud下载

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/

3、配置服务器

1、后台程序配置

1、mysql配置

在root目录下创建docker

mkdir docker

在docker目录下创建mysql

mkdir mysql

创建docker-compose.yml

vim  docker-compose.yml
version: '3.1'
services:
    mysql:
        container_name: "sob-blog-system-mysql"  ----容器名
        network_mode: "host"
        environment:
            MYSQL_ROOT_PASSWORD: "123456"
            MYSQL_USER: 'root'   -----账号名
            MYSQL_PASS: '123456' -----账号密码
        image: "mysql:5.7.30"    -----镜像
        restart: always
        ports:
            - 3306:3306          -----端口
        volumes:   -----挂载
            - "/home/aosp/docker/mysql/db:/var/lib/mysql"   ----换成自己的
            - "/home/aosp/docker/mysql/conf:/etc/mysql"     ----换成自己的
            - "/home/aosp/docker/mysql/log:/var/log/mysql"  ----换成自己的
            #自己的:/root/docker/mysql

启动docker-compose

docker-compose up -d

构建完以后,用SQLyog连接上数据库

创建数据表

再将idea中将项目的数据库连接

spring.datasource.name=data_collection2
spring.datasource.url=jdbc:mysql://47.96.5.171:3306/data_collection2?serverTimezone=Asia/Shanghai ---换成自己的
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver   
spring.datasource.username=root    ---换成自己
spring.datasource.password=        ---换成自己

2、redis配置

在docker目录下创建redis

mkdir redis

创建docker-compose.yml

vim docker-compose.yml
version: '3.1'
services:
    redis:
      image: redis
      container_name: sob-blog-system-redis
      command: redis-server --requirepass 123456
      ports:
        - "6379:6379"                            ----换成自己的
      volumes:
        - "/home/aosp/docker/redis/data:/data"   ----换成自己的

创建容器

docker-compose up -d

构建完以后,用RedisDesktopManager连接上数据库

创建数据表

再将idea中将项目的redis连接

spring.redis.host=47.96.5.171    ----服务器
spring.redis.port=6379           ----redis端口
spring.redis.password=123456     ----redis密码

2、后台管理程序与后台程序打包docker

1、打包jar包

 

2.编辑后端管理程序

1.下载配置nodejs配置教程

https://blog.csdn.net/alnorthword/article/details/88420874  ----nodejs配置教程

2、Nodejs安装及项目打包部署教程

https://blog.csdn.net/weixin_30488313/article/details/96388954?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164811315416780357286068%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164811315416780357286068&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-96388954.142^v3^control,143^v4^control&utm_term=nodejs%E9%A1%B9%E7%9B%AE%E6%89%93%E5%8C%85&spm=1018.2226.3001.4187     ------Nodejs安装及项目打包部署教程

打包前先将项目中需要引用后端程序的地方改成服务器名加上准备开的端口 例如:47.96.5.171:8081

3、服务器配置

我们在root/docker目录下新建nginx目录,并进入nginx目录下新建html目录和一个nginx.conf配置文件。

mkdir nginx
mkdir html
vim nginx.conf
#user  root;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/share/nginx/html;
            try_files $uri $uri/ /index.html last; # 别忘了这个哈
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

[注意]  如果出现有需要代理的则需要修改nginx.conf如下

​
#user  nobody;
user    root;
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;
​
    upstream myIpAddress{               -----后端访问地址
        server 47.96.5.171:8081 weight=1;
    }
    #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;
​
    server {
        listen       80;
        server_name  localhost; # 有了域名之后可以写域名
​
        #charset koi8-r;
​
        #access_log  logs/host.access.log  main;
​
    # 代理
    location /back{                      -----根据你的后端管理程序内容进行修改
        proxy_pass http://myIpAddress;
    }
​
        location /getCaptcha{
            proxy_pass http://myIpAddress;
        }
​
        location /admin{
            proxy_pass http://myIpAddress;
        }
​
        location /judgeCaptcha{
            proxy_pass http://myIpAddress;
        }
​
        location / {
            root   /usr/share/nginx/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;
        }
    }
}

将打包的dise目录下的复制到服务器上的/root/docker/nginx/html 下

在/root/docker下创建Dockerfile

vim Dockerfile
FROM java:8
EXPOSE 8080
ADD data_collection-0.0.1-SNAPSHOT.jar[----jar包的名字----] app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=pro"----就是你创建的application-pro.properties----]

在/root/docker下创建docker-compose.yml

version: "3"
services:
  nginx: # 服务名称,用户自定义
    image: nginx:latest  # 镜像版本
    ports:
    - 80:80  # 暴露端口
    volumes: # 挂载
    - /root/nginx/html:/usr/share/nginx/html
    - /root/nginx/nginx.conf:/etc/nginx/nginx.conf
    privileged: true # 这个必须要,解决nginx的文件调用的权限问题
  vueblog:
    image: vueblog:latest
    build: . # 表示以当前目录下的Dockerfile开始构建镜像
    ports:
    - 8081:8081

[注意]  nginx中我们对nginx的放置静态资源的html文件夹和配置文件nginx.conf进行了一个挂载,所以我们打包后的文件放置到宿主机、/root/docker/nginx/html文件目录就行了哈

3、启动docker-compose

在/root/docker目录下启动docker-compose

docker-compose up -d

查看docker容器

docker ps

 

[注意]  我服务器上mysql并没有用docker容器,所以没有mysql的容器

查看是否成功

在浏览器查看  服务器ip:端口    例如:47.96.5.171:82

 

[注意]  测试时,如果有些数据无法访问,可能是有些代理未配置,查看错误,在Nginx.conf中编写代理

2、前端服务配置

1、打包前端

1、将前端链接后端的路径换成服务器上的 例如:47.96.5.171:8081

2、域名解析

3、打包

 

如果出现

 

就在manifest.json中重新获取

 

2、在服务器配置nodejs+express

使用 wget 下载 nodejs 包

[root@xxx.xxx.xxx.xx ~]# wget https://nodejs.org/dist/v12.18.1/node-v12.18.1-linux-x64.tar.xz
...
[root@xxx.xxx.xxx.xx ~]# tar -xf node-v12.18.1-linux-x64.tar.xz
[root@xxx.xxx.xxx.xx ~]# cd node-v12.18.1-linux-x64
[root@xxx.xxx.xxx.xx node-v12.18.1-linux-x64]#

然后备份之前的配置文件,然后更改现在的配置文件

[root@xxx.xxx.xxx.xx node-v12.18.1-linux-x64]# cp /etc/profile /etc/profile.bak
[root@xxx.xxx.xxx.xx node-v12.18.1-linux-x64]# vim /etc/profile
...
# 在末尾加上这个语句,export PATH=$PATH: 后面跟上 node 下 bin 目录的路径
export PATH=$PATH:/root/node-v12.18.1-linux-x64/bin

然后让这个文件立即生效

[root@xxx.xxx.xxx.xx node-v12.18.1-linux-x64]# source /etc/profile
[root@xxx.xxx.xxx.xx ~]# node -v
v6.17.1
[root@xxx.xxx.xxx.xx ~]# npm -v
3.10.10

然后初始化 npm, 然后更改初始化文件,保存退出

[root@xxx.xxx.xxx.xx ~]# npm init -y
[root@xxx.xxx.xxx.xx ~]# vim package.json

 

环境就搭建完成了


借助这个环境,我们就可以很好的搭建 express

使用命令,进行全局安装

[root@xxx.xxx.xxx.xx ~]# npm install -g express

注:如果之后出现问题Express Command not found,可能是还需要一个安装另外一个包,没有问题的话就可以跳过这一步

[root@xxx.xxx.xxx.xx ~]# npm install -g express-generator

然后创建一个项目,然后进入这个项目,使用npm初始化

[root@xxx.xxx.xxx.xx ~]# express expressDemo
[root@xxx.xxx.xxx.xx ~]# npm install

然后我们把文件放在里面的 public ,并且启动,我们就可以通过这个 ip 加上端口3000进行访问了

[root@xxx.xxx.xxx.xx ~]# npm start

访问地址:xxx.xxx.xxx.xxx:3000

3、启动npm

将h5里面的东西复制到pulic里面

 

screen -S xxx创建页面

然后启动npm

关闭putty,在网页上查看。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值