由于公司的服务器没有外网,所有需要从外网下载docker 镜像,然后导入到服务器上
<!--拉取镜像-->
docker pull loblaw/java8:latest
<!-- 保存镜像到本地-->
docker save -o java8.tar loblaw/java8:latest loblaw/java8:latest
<!--在服务器上导入镜像-->
docker load --input java8.tar
编辑Dockerfile
vi Dockerfile
# 拉取java8的镜像
FROM loblaw/java8:latest
# maintainer 作者是bingo
MAINTAINER bingo
# 拷贝jar包并重命名为demo.jar
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
# expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
EXPOSE 8080
# entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar
ENTRYPOINT ["java","-jar","demo.jar"]
构建镜像:
docker build -t web_app:v1 .
-t 指定镜像名称,
注意最后的 . 表示 Dockerfile 文件在当前目录下
运行容器:
docker run -d --name demo -p 8080:8080 web_app:v1
设置自动重启
docker run -d --restart=always --name demo -p 8080:8080 web_app:v1
这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always
然后docker ps 看看你的容器有没有在运行即可
查看启动日志
docker logs --tail 300 -f demo 查看启动日志
update
如果docker run 的时候没有加 --restart=always ,然后已经运行的docker容器怎么设置自动重启? 执行下面命令:
docker update –-restart=always 容器名称
官方连接
导出容器 https://docs.docker.com/engine/reference/commandline/save
导入容器 https://docs.docker.com/engine/reference/commandline/load/
网友评论