tosim 2020-06-05
1、Centos7系统(基础环境)
2、Centos以及安装好 Docker服务;(docker与docker-compose的安装会有专门的章节说明)
3、jdk8的安装包,作为jar运行的基础环境;本次使用的是:jdk-8u231-linux-x64.tar.gz
4、可运行的Jar,本次使用的jar名称:test-example-1.0-SNAPSHOT.jar
~]# mkdir example ~]# mv jdk-8u231-linux-x64.tar.gz example/ ~]# mv test-example-1.0-SNAPSHOT.jar example/~]# cd example
1、创建Dockerfile
example]# vi Dockerfile
文件内容如下所示;
FROM centos MAINTAINER mj ENV LANG en_US.UTF-8 WORKDIR /home RUN mkdir JDK COPY jdk-8u231-linux-x64.tar.gz /home/ COPY test-example-1.0-SNAPSHOT.jar /home/ RUN tar zxf /home/jdk-8u231-linux-x64.tar.gz -C /home/JDK ENV JAVA_HOME /home/JDK/jdk1.8.0_231 ENV PATH $PATH:$JAVA_HOME/bin EXPOSE 8080 ENTRYPOINT ["java","-jar","test-example-1.0-SNAPSHOT.jar"," -Xms128m","-Xmx512m"]
2、创建docker-compose.yml文件
example]# vi docker-compose.yml
文件内容如下:
version: ‘3‘ services: example: image: mj/example container_name: mj-example restart: always ports: - 8080:8080
yml文件字段名称说明:
services: 指定容器服务,下面可配多个服务(进行服务编排) example: 服务名字,自己指定.这里就代表我的eureka服务 image: 指定启动的镜像,就是上边通过Dockerfile构建的镜像 container_name: 给容器起一个名字 restart: 可重启,使用always就好 ports: 声明映射端口
example]# ls -al
如下图所示:
资料都准备好了,接下来就是构建并启动容器,发布服务了;
example]# docker build -t mj/example . # 根据当前目录Dockerfile构建镜像
此时,启动docker有两种方式:
1)通过docker命令直接启动发布docker容器服务;
example]# docker run -d -p 8080:8080 --name mj-example mj/example /bin/bash
2)通过docker-compse进行容器服务编排启动,即根据docker-compose.yml文件;
检查yml文件格式是否正确;example]# docker-compose config 启动容器服务 example]# docker-compose up 停止并删除容器服务 example]# docker-compose down 强制启动重新建立容器 example]# docker-compose up -d --force-recreate重新构建example]# docker-compose build 或者docker-compose up --build
容器启动后如下图所示: