重要回顾
常用指令
- FROM
- RUN
- ENV
- COPY & ADD
docker build -t 镜像名 -f dockerfile的路径
注意
- 如果不是在当前命令下执行docker名,并且dockerfile的文件名不是默认的dockerfile,就需要使用-f来指定dockerfile文件的路径和名称
部署web项目
-
ubuntu (基础镜像)
-
安装jdk(不能使用weget 下载 很困难)
- 直接将jdk下载到本地,如何jdk拷贝到容器? ADD
- 配置环境变量 ENV
-
安装 tomcat
- 下载tomcat
- 解压tomcat
-
部署war包
- 将war复制到容器中的tomcat下的/webapps目录下
-
启动tomcat
如何启动
FROM ubuntu:18.04
# 将jdk拷贝到容器中的opt目录下并解压
ADD ./jdk-8u221-linux-x64.tar.gz /opt/
# 配置jdk环境变量
ENV JAVA_HOME /opt/jdk1.8.0_221/
ENV CLASSPATH ${JAVA_HOME}/lib;${JAVA_HOME}/jre/lib;
ENV PATH $JAVA_HOME/bin:$PATH
# 切换目录
WORKDIR /opt/
# 下载tomcat
RUN apt update \
&& apt install wget -y \
&& wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz\
&& tar -zxvf apache-tomcat-9.0.37.tar.gz
# 将war 拷贝到容器的tomcat的apps目录下
COPY ./ssm-shop.war /opt/apache-tomcat-9.0.37/webapps/
# 在程序运行时启动tomcat
CMD ["/opt/apache-tomcat-9.0.37/bin/catalina.sh", "run"]
COPY指令
从宿主机拷贝文件到容器中
ADD指令
说明
用于从宿主机从本地目录或者网络拷贝文件到容器的指定的目录下,并且自动解压(tar)
注意: 网络下载的tar文件不解压
语法格式
add 宿主机的目录或者文件 容器中的目录(一定要是绝对路径)
CMD
说明
在容器运行时(RUN)执行的命令
注意事项:
在一个dockerfile文件中,只能有一个CMD指令
语法格式 exec
# 注意必须使用双引号
CMD ["命令" "参数","参数",...] (推荐)
# shell格式
CMD 命令 参数 参数
栗子
CMD ["apt" ,"install" ,"git"]
CMD apt install git
# exec
CMD ["java" "-jar" "smart.jar"]
# shell格式
CMD java -jar smart.jar
ENTRYPOINT
参数CMD
EXPOSE
暴露容器指定的端口,默认所有的端口都暴露
语法格式
EXPOSE 端口 端口 端口 ....
栗子
EXPOSE 8080
MAINTAINER
说明
指定作者的信息,一般情况下 该指令放在 FROM
语法格式
MAINTAINER 作者名称
栗子
MAINTAINER zw
dockerfile
-
自定义镜像
-
一个 dockerfile 就是一个容器
网友评论