4.2.1.8 ENTRYPOINT (entrypoint)语法: ENTRYPOINT ["executable", "param1", "param2"]ENTRYPOINT command param1 param2 含义:这个命令和CMD功能一样 。指定容器启动时执行的命令 , 可以多次设置 , 但是只有最后一个有效 。指令的使用分为两种情况: 独自使用: 如果你还使用了CMD命令且CMD是一个完整的可执行的命令 , 那么CMD指令和ENTRYPOINT会互相覆盖 , 只有最后一个CMD或者ENTRYPOINT有效 。# CMD指令将不会被执行 , 只有ENTRYPOINT指令被执行CMD echo “Hello, World!”ENTRYPOINT ls -l CMD指令配合使用: 和CMD指令配合使用来指定ENTRYPOINT的默认参数 , 这时CMD指令不是一个完整的可执行命令 , 仅仅是参数部分;ENTRYPOINT指令只能使用JSON方式指定执行命令 , 而不能指定参数 。FROM centosCMD ["-l"]ENTRYPOINT ["/usr/bin/ls"]
4.2.1.9 USER (user)语法: USER <user>含义: 设置指令 , 设置启动容器的用户 , 默认是root用户 。
4.2.1.10 EXPOSE (expose)语法: EXPOSE <port> [<port>...]含义: 暴露容器内部端口 , 可以设置多个例如: EXPOSE 5000 , 暴露的是容器内部端口 , 不是主机端口 , 如果外部想使用这个端口需要在运行时映射 。docker run -d -p 127.0.0.1:8080:5000 hello-world
4.2.2 Dockerfile构建jdk+tomcat镜像4.2.2.1 资源添加创建一个目录存放资源# mkdir Dockerfile-tomcat把jdk压缩包和tomcat压缩包放到 Dockerfile-tomcat 的目录下面
文章插图
4.2.2.1 编辑Dockerfile
# 新建一个空文件Dockerfile , 编辑Dockerfile内容 。# vi Dockerfile
Dockerfile内容:# 基础镜像FROM centos:7.6.1810# 作者信息MAINTAINER kh9x <kh9x@qq.com># 容器工作目录WORKDIR /usr/local/# 在宿主机/usr/local/docker路径下 , 上传压缩包 , 并添加tomcat和jdk到镜像中 , ADD会自动解压ADD jdk-8u192-linux-x64.tar.gz /usr/local/ADD apache-tomcat-8.5.73.tar.gz /usr/local/# 设置环境变量ENV JAVA_HOME /usr/local/jdk1.8.0_192/ENV PATH $JAVA_HOME/bin:$PATHENV CATALINA_HOME=/usr/local/apache-tomcat-8.5.73# 配置启动文件的权限RUN chmod +x /usr/local/apache-tomcat-8.5.73/bin/*.sh# 指定于外界交互的端口EXPOSE 8080# 定义在容器启动之后的运行程序 , 保持docker容器运行ENTRYPOINT /usr/local/apache-tomcat-8.5.73/bin/startup.sh && /bin/bash && tail -f /usr/local/apache-tomcat-8.5.73/logs/catalina.out
4.2.2.3 执行构建命令构建(tomcat+jdk)服务镜像执行命令# docker build -t 镜像名:tag . 举例# docker build -t tomcat:8.5.73-jdk8-kh96 .注意:-t为执行镜像的名称 , 千万不要忽略结尾处的 . , 它表示当前上下文目录 。不是Dockerfile的默认目录构建完成后查看镜像# docker images
文章插图
4.2.2.4 创建并启动容器 并 访问
先停止commit自定义提交的镜像tomcat02# docker stop tomcat02创建并启动容器# docker run -itd -p8080:8080 --name tomcat03 tomcat:8.5.73-jdk8-kh96通过服务器映射端口 , 访问docker容器tomcat
文章插图
4.2.3 Dockerfile构建jdk+Springboot项目镜像4.2.3.1 资源添加
创建一个目录存放资源# mkdir Dockerfile-springbootProject把项目jar包放到 Dockerfile-springbootProject 的目录下面
文章插图
4.2.3.2 编辑Dockerfile
FROM java:8COPY *.jar /app.jarCMD ["--server.port=8080"]EXPOSE 8080ENTRYPOINT ["java","-jar","/app.jar"]
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 试试将.NET7编译为WASM并在Docker上运行
- 部落冲突十周年挑战赛2020怎么打
- 补水眼霜哪个牌子好 2018补水眼霜十大品牌排行榜推荐
- 十斤辣椒要放多少盐
- 跳绳十分钟相当于跑步多少时间
- 2022城市房价排名前十名单有哪些 2022城市房价排名前十名单
- 七 SpringCloud - 微信支付
- 部落冲突十周年挑战赛2020通关图文攻略
- 农历十月初一是阳历的哪一天 北方十月一烧纸有什么讲究吗
- 2023年农历十月十四搬家好吗 搬家前有哪些准备