当前位置:   article > 正文

linux服务器使用docker容器+jenkins自动打包搭建前端VUE+后端JAVA项目_docker jenkins vue java

docker jenkins vue java

一、基础配置

1.下载更新yum工具管理
sudo yum update -y

如果容器内使用不了vim 可以在容器内输入以下命令
apt-get update
apt-get install vim -y


2.安装主题工具
yum install -y zsh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

二、安装docker容器

1.下载软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 

2.设置yum源 
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 

3.安装docker 
yum install docker-ce -y

4.启动并加入开机启动
systemctl start docker 
systemctl enable docker
输入 docker -v 验证是否安装成功,出现(Docker version 20.10.17, build 100c701) 版本信息则安装成功

docker常用命令
1.docker images 查看所有镜像
2.docker ps / docker ps -a 查看正在运行的容器/所有容器
3.docker ps -a 查看所有容器
4.docker rm / rmi  NAME/ID 删除容器/删除镜像
5.docker NAME/ID 删除镜像 NAME(容器名称) ID(容器ID)
6.docker exec -it NAME/ID /bin/bash 进入容器内部
7.docker start / stop / restart NAME/ID 启动/停止/重启
8.docker top NAME/ID 查看容器内进程
9.docker inspect  NAME/ID 查看容器相关信息
10.docker logs  NAME/ID 输出容器日志
11.docker export -o test.tar NAME/ID 将容器进行打包保存到本地,文件类型为tar
12.cat test.tar |docker import - image_name:tag 将保存的容器文件导入到镜像库中
13.docker port  NAME/ID 查看容器端口映射情况
14.docker cp  NAME/ID : /docker/user/test.txt /main/user/file 从容器里面拷贝文件到宿主机 拷贝文件夹不需要指定文件名称
15.docker cp /main/user/test.txt NAME/ID : /docker/user/file  从宿主机中拷贝文件到容器
15.systemctl restart  docker 重启服务

  • 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
  • 29
  • 30
  • 31
  • 32

三、安装jenkins

1.获取jenkins镜像
docker pull jenkinsci/blueocean
  • 1
  • 2

四、安装redis

1.获取redis镜像
docker pull redis

2.创建文件夹
mkdir /home/docker/images/redis
mkdir /home/docker/images/redis/data
ridis.conf文件上传到/home/docker/images/redis 目录下

3.创建并启动服务
docker run -p 6379:6379 --name redis --sysctl net.core.somaxconn=1024 -v /home/docker/images/redis/redis.conf:/etc/redis/redis.conf  -v /home/docker/images/redis/data:/data -e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" -d redis redis-server /etc/redis/redis.conf --appendonly yes

4.配置主从
获取配置文件 wget http://download.redis.io/redis-stable/redis.conf
修改主库配置文件 
# bind 127.0.0.1 # 注释当前行,表示任意ip可连
daemonize yes # 让redis服务后台运行
requirepass 123456 # 设定密码


修改从库配置文件
# bind 127.0.0.1
daemonize yes
requirepass 123123 # 从库密码,可选配置
# <masterip>表示主库所在的ip,而<masterport>则表示主库启动的端口,默认是6379
slaveof 127.0.0.1 6300
# 主库有密码必需要配置,<master-password>代表主库的访问密码
masterauth 123456

命令方式
1.redis-cli
2.slaveof xxxxxxx
3. CONFIG SET masterauth xxxx

事项:
查看容器内部端口 docker inspect 容器 找到IPAddress
1.端口占用
netstat -tanlp 查看端口,使用 kill PID 杀掉占用端口
2.设置密码 --requirepass 123456
3.解决bug 在宿主机中执行 echo 1 > /proc/sys/vm/overcommit_memory

  • 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
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

五、安装mysql(5.7)

1.获取mysql镜像
docker pull mysql:5.7

2.创建mysql文件夹管理
mkdir /home/docker/images/mysql
cd /home/docker/images/mysql
echo $PWD

3.创建启动服务并设置初始密码
docker run --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:5.7

4.进入容器
docker exec -it -u root mysql /bin/bash

5.输入密码
mysql -u root -p"123456"

6.开启远程访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '服务器登陆密码';

7.刷新配置 
flush privileges;
CTRL + shift +d退出

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

六、安装nginx

1.获取nginx镜像
docker pull nginx

2.创建nginx文件夹管理
mkdir /home/docker/images/nginx
mkdir /home/docker/images/nginx/www
mkdir /home/docker/images/nginx/conf
mkdir /home/docker/images/nginx/logs

4.上传nginx配置文件 nginx.conf 到
/home/docker/images/nginx/conf 目录
配置文件内容如:

user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
server {
    listen  80;
    server_name 120.76.136.43;

    location /  {
        proxy_set_header  Host $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass  http://www.baidu.com;
    }
}

#前端访问平台
server {
    listen  80;
    server_name iot5g.gdssly.cn;

    location /  {
        proxy_set_header  Host $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass  http://120.76.136.43:18080;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

#前端访问移动端
server {
    listen  80;
    server_name iotcardwechat.gdssly.cn;

    location /  {
        proxy_set_header  Host $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass  http://120.76.136.43:18000;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

#后端接口
server {
    listen  80;
    server_name openapi.gdssly.cn;

    location /  {
        proxy_set_header  Host $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass  http://120.76.136.43:18888;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

server {
    listen  80;
    server_name iotcardpro.gdssly.cn;

    location / {
        proxy_set_header  Host  $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass  http://14.215.49.31:19000;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

   # gzip config
    gzip_static on;
    gzip_proxied expired no-cache no-store private auth;
    gzip_http_version 1.1;
    gzip on;
    gzip_buffers 32 4K;
    gzip_min_length 1k;
    gzip_comp_level 6;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml application/html text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    include /etc/nginx/conf.d/*.conf;
}


3.创建并启动服务
docker run -d -p 80:80 --name nginx -v /home/docker/images/nginx/www:/usr/share/nginx/html -v /home/docker/images/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/images/nginx/logs:/var/log/nginx nginx

启动服务
docker start nginx

  • 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
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133

七、创建JAVA jar包服务

1.获取java版本(1.8)创建文件夹管理以及上传jar包
docker pull kdvolder/jdk8
mkdir /home/docker/images/java


2.创建docker.sh脚本文件

# 源jar路径  即jenkins构建后存放的路径
#SOURCE_PATH=/dockerdatas/docker_jenkins/jenkins_home/workspace/xxl-job-iot/xxl-job-admin/target

cp /docker/images/jenkins/workspace/定时调度任务/xxl-job-admin/target/xxl-job-admin-2.3.1-SNAPSHOT.jar ./xxljob.jar

#docker 镜像/容器名字或者jar名字 这里都命名为这个
  SERVER_NAME=xxl-job
  
 #容器id
 CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
 
 #镜像id
 IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')

 # 构建docker镜像
         if [ -n "$IID" ]; then
                 echo "存在$SERVER_NAME镜像,IID=$IID"
                  docker stop $SERVER_NAME   # 停止运行中的容器
                  docker rm $SERVER_NAME     ##删除原来的容器
                  docker rmi $IID   ## 删除原来的镜像

         else
                 echo "不存在$SERVER_NAME镜像,开始构建镜像"
                      
        fi
        

  # 构建镜像 
  cd /docker/images/xxl-job
  docker build -t $SERVER_NAME .
    
# 运行容器
 # --name docker-test                 容器的名字为自定义
 #   -d                                 容器后台运行
 #   -p 8090:8090 指定容器映射的端口和主机对应的端口都为8090
 #   -v /usr:/usr   将主机的目录挂载到容器的目录中
 docker run --name $SERVER_NAME -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v $BASE_PATH:$BASE_PATH -d -p 8010:18888 $SERVER_NAME
 echo "$SERVER_NAME容器创建完成" 

3.创建Dockerfile文件
# jdk 是一个已有的包含 jdk 的镜像
 FROM kdvolder/jdk8
#  作者签名
 MAINTAINER LXM
#  简化 jar 的名字路径 (#:表示注释掉)
COPY xxljob.jar /xxljob.jar
#  执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)
 CMD java -jar /xxljob.jar
#  设置对外端口为 18010
 EXPOSE 8010

4.注意事项:
设置文件类型 set ff=unix
设置文件权限 chmod u+x file.sh
执行脚本文件 ./文件名.sh

  • 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
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/715405
推荐阅读
相关标签
  

闽ICP备14008679号