- 上传jar到服务器的指定目录
- 在该目录下创建Dockerfile 文件
vim Dockerfile
- 然后将下面的内容复制到Dockerfile文件中
FROM java:8 MAINTAINER bingo ADD demo-0.0.1-SNAPSHOT.jar demo.jar EXPOSE 8088 ENTRYPOINT ["java","-jar","demo.jar"]
from java:8 拉取一个jdk为1.8的docker image
maintainer 作者是dh,指令设置生成镜像的 Author 字段
demo-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称
demo.jar 是你将该jar包重新命名为什么名称,在容器中运行
expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar
-
创建好Dockerfile文件之后,执行命令 构建镜像:
注意最后的 . 表示 Dockerfile 文件在当前目录下
my/demo 构建之后镜像名称 - 镜像构建成功之后,就可以运行容器了:
docker run -d --name demo -p 8088:8088 my/demo
docker run -d --restart=always --name demo -p 8088:8088 my/demo 这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always
第一个为服务器8088端口,第二个8088为docker容器端口
- 然后docker ps 看看你的容器有没有在运行即可
-
docker logs --tail 300 -f demo 查看启动日志
另: 如果docker run 的时候没有加 --restart=always ,然后已经运行的docker容器怎么设置自动重启? 执行下面命令:
demo : 你的容器名称docker update –-restart=always demo
-
停止、删除、启动镜像
容器
镜像docker ps // 查看所有正在运行容器 docker stop containerId // containerId 是容器的ID docker ps -a // 查看所有容器 docker ps -a -q // 查看所有容器ID docker start $(docker ps -a -q) // start启动所有停止的容器 docker stop $(docker ps -a -q) // stop停止所有容器 docker rm $(docker ps -a -q) // remove删除所有容器
删除所有镜像 docker rmi $(docker images -q) 根据格式删除所有镜像 docker rm $(docker ps -qf status=exited)