Docker实战 -- Springboot + Vue 工程发布部署手记

项目背景为 Springboot Vue Node Mysql
发布环境 Linux CentOS
准备工作 进行配置Linux的基础环境 Java Node Mysql
大概分为五个步骤:

1  工程文件上传至Linux(通常由Git进行同步)
2  编写DockerFile
3  制作Docker镜像文件
4  制作容器
5  容器发布  

一 Linux工程文件上传:

通常使用Window自带的传输工具或者WinScp进行远程主机连接之后。然后进行文件上传。

二 编写DockerFile
首先,在项目的根目录下,新建一个文本文件.dockerignore,写入下面的内容。

.git
node_modules
npm-debug.log

上面代码表示,这三个路径要排除,不要打包进入 image 文件。如果你没有路径要排除,这个文件可以不新建。

然后,在项目的根目录下,新建一个文本文件 Dockerfile,写入下面的内容。

FROM node:10.15
# 创建JavaHome 路径
RUN mkdir /usr/local/java
# 添加JDK
ADD jdk-8u231-linux-x64.tar.gz /usr/local/java/
# 创建软连接 
RUN ln -s /usr/local/java/jdk1.8.0_231 /usr/local/java/jdk
# 设置Java环境变量
ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH
# 拷贝工程目录
COPY . /vueDemo
# 指定工作文件夹
WORKDIR ./vueDemo
# 向外暴露端口80
EXPOSE 80

关于DockerFile中的相关语法,请关注我的上一篇Docker基础学习笔记中有相应的详细介绍。
三 制作Docker镜像文件:

# 注意最后面的 . 
$ docker image build -t vueDemo .

四 容器制作:

docker run -d -it -p 3008:3000 -p 8088:8080 -p 8070:8090 --name nodetest --restart always --peivileged=true nodetest /bin/bash 

相关参数解释:

-d:指代容器运行方式,在后台运行
-it:
-p:进行指定容器暴露的端口信息
–name: 指定容器名称
restart always:配置容器自动重启。
–peivileged=true:设置容器的访问权限
/bin/bash:容器可以用Shell脚本的形式进行访问

五 容器发布:
容器制作完成之后,接下来进行容器的启动即可,操作命令如下:

# 启动容器
$ docker start <containerId>
# 进入容器
$ docker exec -it <containerId> /bin/bash

然后就可以在容器内部进行,正常的运行服务了。

六 注意点:
1 容器间通信方式 建议使用自定义的网络Brige,来实现容器见的通信。
2 关于Linux上如果Mysql服务被封装成容器进行访问时,记得配置的是,容器的虚拟IP地址,并非Linux的IP:3306的方式。不然的话可能会报错127.0.0.1(或者Linux主机的IP地址):3306无法连接。
3 再重新发布的时候,一定要先关闭Docker容器服务之后然后进行重新发布。不然会进行重新启动一个新的端口。比如本次暴露得是80。再次启动之后变成81.

你可能感兴趣的:(Docker)