1、切换目录
mkdir -p /usr/local/docker/
cd /usr/local/docker/
touch Dockerfile
2、准备 springboot 项目,以及 jdk 包
[root@localhost docker]# ls
Dockerfile jdk-8u231-linux-x64.tar.gz rubis-0.0.1-SNAPSHOT.jar
3、编写 Dockerfile 文件
如果是目录,COPY ADD 命令只会把当前目录的文件拷贝到目标路径
vim Dockerfile
# 基础镜像使用 centos 7
FROM centos:7
# 作者
MAINTAINER tomma <576530483@qq.com>
# 容器内创建 java 文件夹,用于放 jdk
RUN mkdir /usr/local/java
# 解压宿主机文件 到 容器内 java 文件夹
ADD jdk-8u231-linux-x64.tar.gz /usr/local/java
# 容器内配置环境变量
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_231
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
ENV PATH=$PATH:$JAVA_HOME/bin
# 容器内根目录创建 java文件夹,用于放 jar 包
RUN mkdir /java
# 复制宿主机 jar 包到 容器内 并重命名 app.jar
COPY rubis-0.0.1-SNAPSHOT.jar /java/app.jar
# 运行 jar 包
ENTRYPOINT ["java","-jar","/java/app.jar"]
4、制作镜像
# 在当前目录下执行
docker build -t app .
# 不在当前目录下执行
docker build -t app -f /usr/local/docker/Dockerfile /usr/local/docker
# 参数
-t # 镜像名
-f # Dockerfile 文件位置
/usr/local/docker 指定 Dockerfile里面 mv copy add的路径
5、查看镜像
[root@vm73 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
app latest 785f5124f4d5 4 hours ago 623MB
centos 7 5e35e350aded 4 months ago 203MB
6、运行容器
docker run -p 8082:8081 --name rubis -d app
7、查看容器
[root@vm73 docker]# docker ps -a
CONTAINER ID IMAGE COMMAND PORTS NAMES
c9448a1a8b08 app "java -Djava.securit…" 0.0.0.0:8082->8081/tcp rubis