1.搭建docker环境
需要linux系统必须是centOS7以上
执行一下命令:
yum install epel-release –y
yum clean all
yum list
2.安装
yum install docker-io –y
systemctl start docker
3.测试docker是否成功
docker info
出现一下信息证明成功:
········ Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Insecure Registries: 127.0.0.0/8 Registries: docker.io (secure)
4.创建Dockerfile文件内容如下:
FROM java:8
MAINTAINER 70kg 449246146@qq.com
VOLUME /tmp ADD mystory-1.0.0-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
介绍一下:
- FROM :表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
- MAINTAINER :指定维护者的信息
- VOLUME :VOLUME 指向了一个
/tmp
的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp
作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker
目录下创建一个临时文件并把它链接到容器中的/tmp
目录 - ADD :拷贝文件并且重命名(前面是上传jar包的名字,后面是重命名)
- RUN :每条run指令在当前基础镜像执行,并且提交新镜像
- ENTRYPOINT :为了缩短 Tomcat 的启动时间,添加
java.security.egd
的系统属性指向/dev/urandom
作为 ENTRYPOINT
5.将创建好的Dockerfile文件和jar包上传到服务器,放在同一文件夹下,进入jar包所在文件夹,执行命令
注意:后面末尾有一个空格和一个“.”,mystory是创建的镜像的名字,“.”表示当前目录
docker build -t mystory .
6.查看生成的镜像:
docker images
7.创建容器并运行jar包
docker run -d -p 8080:8080 mystory
-d表示在后台运行
-p 指定端口号 第一个8080为容器内部的端口号,第二个8080为外界访问的端口号,将容器内的8080端口号映射到外部的8080端口号
如果想用域名来访问的话,需要把数据库连接改为服务器的ip+数据库端口号,并且命令改为:docker run -d -p 80:80 mystory
8.测试
外网ip+端口号访问项目
如果是用阿里的ECS需要改实例安全组开放3306端口和8080端口,点这里
ok~