一、准备好相应得jar包,并vim好dockerfile文件。
#定义基础镜像
FROM java:8
# 维护者信息
MAINTAINER [email protected]
#声明发布端口(没有发布)
EXPOSE 9181
# 将jar包添加到容器
ADD springboot.jar app.jar
# 定义容器启动执行的命令(CMD会被docker run 之后的命令替换掉)
CMD java -jar app.jar
指令详情:
指令解析FROM指定基础镜像,必须为第一个命令MAINTAINER维护者邮箱等信息RUN构建镜像docker build时执行的命令ADD将本地文件添加到容器中,tar 类型文件会自动解压COPY功能类似ADD,但是是不会自动解压文件,也不能访问网络资源CMD在docker run时会执行的命令,如果存在多个则仅最后一个生效,例如一个镜像的dockerfile的结尾是“ CMD ["/bin/bash"] ”,那么进入容器可以使用docker exec -it imageName或docker exec -it imageName /bin/bash,后者是在“ CMD ["/bin/bash"] ”的指令下面多加了一个“ CMD ["/bin/bash"] ”,根据CMD的特性,存在多个时,只让最后一个CMD生效,因此不影响ENTRYPOINT可执行化LABEL用于为镜像添加元数据ENV设置环境变量EXPOSE指定于外界交互的端口VOLUME用于指定持久化目录WORKDIR工作目录ARG用于指定传递给构建运行时的变量ONBUILD用于设置镜像触发器
二、build 当前dockerfile文件
docker build -f dockerfile文件路径 -t 镜像名称:版本号 .
例:docker build -f dockerfile -t myfirstapp:1.0 .
三、查看镜像是否打成功
#查看镜像是否已存在。
docker images
#查看镜像声明的端口
docker inspect -f {{".ContainerConfig.ExposedPorts"}} abde875b8b42
四、将镜像压缩成tar包或者解压
docker save -o 压缩文件名称 镜像名称:版本号
例:docker save -o myfirstapp.tar myfirstapp:1.0
docker load –i 压缩文件名称
例:docker load -i myfirstapp.tar
五、启动容器运行镜像
docker run --name 容器名称 -it -d后台运行 -p端口映射宿主机:容器内 -v /宿主机绝对路径目录:/容器内目录 镜像名称:版本号
例:docker run --name mydocker -it -d -p 8080:80 -v /opt/log:/log myfirstapp:1.0
(-i 以交互模式运行容器,通常与 -t 同时使用、-t 为容器重新分配一个伪输入终端)
六、查看容器信息
docker ps -a
七、进入容器
docker exec -it 容器名 bash
例:docker exec -it mydocker bash
八、查看容器日志
docker logs [OPTIONS] CONTAINER
[OPTIONS]
-f : 跟踪日志输出
-t : 显示时间戳
--tail :仅列出最新N条容器日志
--since:显示某个日期至今的所有日志
CONTAINER
代表容器ID或容器名称
# 显示最近10条日志
docker logs -f --tail 10 efb78392fcc6
#显示某个日期到当前日期的所有日志
docker logs -f --since "2022-05-16" efb78392fcc6
版权归原作者 老郑头zz 所有, 如有侵权,请联系我们删除。