docker部署项目-手动部署

后端部署到Docker

  1. java项目打包成一个jar包(注意项目中的关于ip地址的编写)

  2. 上传jar包到虚拟机

  3. 准备好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"]
  4. 选取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
  5. 使用jar和Dockerfile文件,创建docker镜像

    1
    docker build -t myImage:1.0 .
    • -t :是给镜像起名,格式依然是repository:tag的格式,不指定tag时,默认为latest

    • . :是指定Dockerfile所在目录,如果就在当前目录,则指定为”.”

  6. docker从上面打包的压缩包中加载镜像

    docker load -i 压缩包文件名

  7. 使用该镜像创建&运行容器(指定使用的docker网络

    1
    2
    # 启动容器(指定网络)
    docker run -d -P --name 容器名称 --net 网络名称 镜像文件 # 启动一个容器,指明自定义的网络名称(若不指定,则默认是docker0),就可以通过容器名字实现容器之间的互相访问

配置前端的静态资源

  1. 前端项目打包成静态资源
  2. 上传到服务器
  3. 配置nginx.conf
  4. 使用nginx的镜像,并用nginx.conf绑定数据卷,创建&运行容器(指定使用的docker网络

指定使用的docker网络,为了使不同容器之间能够通过容器名ping通

Contents
  1. 1. 后端部署到Docker
  2. 2. 配置前端的静态资源
|