> 文章列表 > Dockerfile的编写以及制作镜像并运行

Dockerfile的编写以及制作镜像并运行

Dockerfile的编写以及制作镜像并运行

Docker 制作镜像

编写Dockerfile文件

注意这里传入变量的时候需要先使用ARG定义

# 设备服务Dockerfile示例
FROM openjdk:8-jdk
LABEL MAINTAINER=*# 定义变量名
ARG NAME
ARG JARRUN echo "${JAR}"
RUN echo "${NAME}/xjar /home/${NAME}/xjar"# 将需要用的文件拷贝到docker中(这里没有用目录挂载)
COPY startup.sh /home/docker/startup.sh
COPY ${NAME}/xjar /home/docker/${NAME}/xjar
COPY ${NAME}/${JAR}  /home/docker/${NAME}/${JAR}RUN echo "${JAR}"# 指定工作路径
WORKDIR /home/docker# 需要执行的指令
ENTRYPOINT ["/home/docker/startup.sh"]# 通过该方式向上面指令传参
CMD ["arg1","arg2","arg3","arg4","arg5","arg6"]

docker build

制作docker镜像
sudo docker build -t $1:1.0 -f /home/msfw1a/ut/pcmspf-deploy/docker/Dockerfile . --no-cache --build-arg JAR=$jar --build-arg NAME=$1
运行docker
sudo docker run -p $server_port:$server_port $1:1.0 $2 $3 $jar $1 $5 "$4"

其中ENTRYPOINT [“/home/docker/startup.sh”]是重点,ENTRYPOINT 是一个用于指定容器启动时执行的命令的参数。当 Docker 容器启动时,它会执行 ENTRYPOINT 中指定的命令。