一、dockerfile展示
将DockerFile 配置文件放到 maven项目目录内,和pom.xml同级。
# Download code
FROM bitnami/git:2 AS git
RUN mkdir -p /home/app/src
RUN git -c http.sslVerify=false -C /home/app/src clone -b local https://github.com/test.git
#
# Build & package stage
#
FROM maven:3.8.1-jdk-11-slim AS build
COPY --from=git /home/app/src /home/app/src
RUN mvn -X -f /home/app/src/websit/pom.xml clean package -Dmaven.test.skip=true clean package -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ignore.validity.dates=true -Dspring.cloud.nacos.username=only_read -Dspring.cloud.nacos.password=nacos
#
# Runtime eviroment
#
FROM openjdk:11-jre-slim
COPY --from=build /home/app/src/websit/demo.jar /usr/local/lib/demo.jar
EXPOSE 9090
ENTRYPOINT ["java","-Duser.timezone=Asia/Shanghai","-jar","/usr/local/lib/demo.jar"]
这是一个多步骤的dockerfile,第一步git下载代码,第二步使用maven进行打包,第三步将运行时环境准备好,并设置命令java -jar ***.jar
来在容器启动时启动服务。
二、打包镜像
自动检测的文件名为Dockerfile ,使用-f
指定dockerfile文件路径。
docker build -f dockerfile -t kanban:0.0.1
三、部署容器
docker run -d -it -p 9965:9962 kanban:0.0.1
要想退出 container 时,让 container 仍然在后台运行着,可以使用“docker exec -it”命令。每次使用这个命令进入container,当退出container后,container仍然在后台运行,命令使用方法如下:
docker exec -it goofy_almeida /bin/bash
goofy_almeida:container的名称
/bin/bash:在container中启动一个bash shell
-i
: 保持标准输入打开,默认为false;
-t
: 是否分配一个伪终端,默认为false;
这样输入“exit”或者按键“Ctrl + C”退出container时,这个container仍然在后台运行,通过:
docker ps
就可以查找到。
docker学习
构建镜像
# 命令:(注意最后的 .)
# 该命令会在当前目录下寻找Dockerfile文件,并自动完成构建。
# -t webapp 表示给构建完成的镜像取一个名字。
docker build -t webapp .
docker images # 查看镜像信息
运行容器
# 命令:
docker run -d -p 8090:8080 webapp
-d # 表示后台运行容器,并返回容器ID
-p # 使用端口映射,8090:8080表示将容器的8080端口映射到主机的8090端口。
docker ps -a # 查看运行的所有容器