1, jdk17版本的dockerfile
FROM eclipse-temurin:17-jre
ADD ./target/ods-poc-0.0.1-SNAPSHOT.jar /home/app/app.jar
WORKDIR /home/app
ENV TZ Asia/Shanghai
ENTRYPOINT ["java","-jar","/home/app/app.jar"]
EXPOSE 8083
dockerfile
1, ENV: 可以设置变量,并在后续通过${xxx}来进行引用.如 ENV name=value , 后续通过${name}来引用
2, 执行一个dockerfile文件构建一个镜像: 在Dockerfile文件目录下,执行 docker build -t xxx , 其中 xxx表示给生成的镜像起的名字.
3, 复制拷贝 ADD & COPY区别:
COPY
ADD
ADD与COPY指令在功能上十分相似,但是在COPY的基础上增加了一些功能。比如,源路径可以是一个指向一个网络文件的URL,这种情况下,Docker引擎会试图下载这个URL指向的文件到去。
此外,当为一个tar压缩文件时,该压缩文件在被复制到容器中时会被解压提取。但是使用COPY指令只会将tar压缩文件拷贝到中。
参照: https://www.cnblogs.com/zdz8207/p/linux-docker-add-copy.html
4, 引用其他文件: ENTRYPOINT ["./entrypoint.sh"] 在dockerfile同目录下创建一个entrypoint.sh, 内容如下:
#!/bin/bash pwd ls -i env java ${JAVA_OPS} -jar /home/app/app.jar
5, 更改timezone时区:
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
6, WORKDIR
1, 切换到镜像中的指定路径,设置工作目录
2, 在 WORKDIR 中需要使用绝对路径,如果镜像中对应的路径不存在,会自动创建此目录
3, 一般用 WORKDIR 来替代 切换目录进行操作的指令
4, 可以被使用多次,进行多次目录切换;如果后面的路径使用了相对路径,则会相对于上一个路径来
7, docker里面拉取镜像都是在docker.io;拉取的,我们可以访问网站: https://hub.docker.com/layers/ 然后搜索需要下载的镜像名,然后查看其对应可以被拉取的版本号
--------------------------------------------------------------------------------------------------------
Docker架构
--------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
docker常用命令
1,运行指定容器
docker run [containerId]
docker restart [containerId]
2,终止容器
docker stop [containerId]
3,查看所有container
docker container ls -a
4,删除指定container
docker rm [containerId]
5,开机启动docker :systemctl enable docker.service