后端部署到Docker
java项目打包成一个jar包(注意项目中的关于ip地址的编写)
上传jar包到虚拟机
准备好Dockerfile文件(写好内容)
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录、容器内时区
ENV JAVA_DIR=/usr/local
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar
# 安装JDK
RUN cd $JAVA_DIR \ && tar -xf ./jdk8.tar.gz \ && mv ./jdk1.8.0_144 ./java8
# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 入口,java项目的启动命令
ENTRYPOINT ["java", "-jar", "/app.jar"]选取docker的网络(可以使用自定义的docker网络)
1
2
3# 自定义一个网络
docker network create --driver 网络模式 --subnet 子网的网络号/子网掩码 --gateway 网关设置 网络名称 # 创建一个自定义网络,指定网络模式、网络地址规定、网关地址、网络名称
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet使用jar和Dockerfile文件,创建docker镜像
1
docker build -t myImage:1.0 .
-t :是给镜像起名,格式依然是repository:tag的格式,不指定tag时,默认为latest
. :是指定Dockerfile所在目录,如果就在当前目录,则指定为”.”
docker从上面打包的压缩包中加载镜像
docker load -i 压缩包文件名
使用该镜像创建&运行容器(指定使用的docker网络)
1
2# 启动容器(指定网络)
docker run -d -P --name 容器名称 --net 网络名称 镜像文件 # 启动一个容器,指明自定义的网络名称(若不指定,则默认是docker0),就可以通过容器名字实现容器之间的互相访问
配置前端的静态资源
- 前端项目打包成静态资源
- 上传到服务器
- 配置nginx.conf
- 使用nginx的镜像,并用nginx.conf绑定数据卷,创建&运行容器(指定使用的docker网络)
指定使用的docker网络,为了使不同容器之间能够通过容器名ping通