服务器搭建docker应用

前言

最近在腾讯买了个Linux服务器,裸机低配版,刚好用来试试用docker来部署一个网站,不过最好不要用Centos 8,这个版本已经停止维护了,而且在安装环境时会遇到各种问题,如无法下载等。

注意:这篇文章讲的是手工部署,并不是自动部署,且是单机模式。

1、安装docker

安装docker看下面这篇文章,按照步骤安装即可。
centOS安装docker

2、安装MySQL

如果需要用到MySQL的,照下面这篇文章安装即可,如果没有用到跳过。
docker安装MySQL

3、安装Redis

如果需要用到Redis的,照下面这篇文章安装即可,如果没有用到跳过。
docker安装Redis

4、安装nginx

如果部署的应用是纯后端的,没有前端页面的,可以不用nginx,之前应用端口对应服务器开放的端口即可,在这里安装nginx,主要是部署前端页面,让前端和后端路径都是同一个端口访问,因为没有买域名,所以都是用IP访问。
docker 安装nginx

5、构建后端应用镜像

(1)准备
在服务器建一个文件夹,文件夹名和将要构建镜像名称一致即可,方便管理,用于保存Dockerfile和jar包。这里就建一个test文件夹为例。

#建文件夹
mkdir test
  • Dockerfile
    在test文件夹建Dockerfile文件。
#1、建Dockerfile文件
touch Dockerfile

#2、把下面的Dockerfile内容复制进来
# 编辑文件
vi Dockerfile

#保存退出
:wq

Dockerfile内容:

FROM java:8
VOLUME /tmp
EXPOSE 8080
COPY test.jar test.jar
ENTRYPOINT ["java","-jar","test.jar"]
  • 打包spring boot项目为jar包
    注意:项目里的数据库、Redis的连接IP用服务器的内网IP,必须是内网IP。除非把MySQL和Redis给放开让外网访问,可以换成公网IP,但不建议如此做,这是不安全的。
    把项目打包成jar包后,上传到服务器的test目录,即Dockerfile和jar包同在一目录。
    mac上传命令:
scp /本地路径/xxxx.jar root@ip地址:/服务器test路径/test
#例子:scp /Users/sakura/Downloads/test/test.jar root@192.168.0.1:/root/test
#然后输入服务器登录密码

windows上传,下载xshell,然后上传即可。

(2)构建镜像
进入test目录,然后执行构建命令,注意test后面有个点的,不要漏掉。

#test为镜像名称
docker build -t test .

查看镜像:

docker images

构建成功后启动容器:

#--name test 容器名称,/root/logs:/logs日志挂载到磁盘
#/root/logs磁盘路径,/logs为应用保存日志的相对路径
docker run --name test -d -p 8080:8080-v /root/logs:/logs test

启动完成后可以通过下面命令查看情况:

#查看日志,test为容器名
docker logs test

#查看容器启动状态,status为up则启动正常
docker ps -a

6、发布前端

这里以vue项目为例子,在本地项目中执行下面命令构建Vue项目:

npm run build

构建完成后会有一个dist文件夹,压缩。在第4步安装nginx有个html挂载文件夹,在html文件夹下再建一个前端文件夹test-page,把dist压缩包上传到test-page里,解压缩,注意解压缩后有个index.html文件,这个文件必须在test-page里,不能是在子级目录,不然nginx配置会不准确。
如图,此时目录(school-page就是test-page):


page.png

7、配置nginx

此时前后端都已经准备好了,就差配置nginx了。
进入nginx的conf目录,编辑nginx.conf文件:

cd /nginx/conf

vi nginx.conf

然后把下面配置添加到你的nginx配置,监听的是80端口,把192.168.0.1换成服务器的内网IP,/api/为后端接口的映射前缀,所以前端访问后端接口时都要加上这个前缀,当匹配到时转发到后端应用,具体如何配置可以搜索nginx的配置规则。然后配置前端,根路径即是前端首页,需要注意的是root 的路径是nginx容器的路径,并不是服务器本地挂载的路径。

user  nginx;
worker_processes  auto;

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

events {
    worker_connections  1024;
}

http {
    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  on;
    server {
        listen 80;
        server_name localhost;

    location /api/ {
        proxy_pass http://192.168.0.1:8080/;
    }
    location / {
        root /usr/share/nginx/html/test-page;
        index index.html index.htm;
    }
    }

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

保存后重启nginx:

#停止nginx
docker stop nginx

#启动nginx
docker start nginx

此时所有配置都已完成,在自己电脑输入地址访问:http://公网IP:80,即可访问。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容