dockerfile示例
Posted qijiangforever
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dockerfile示例相关的知识,希望对你有一定的参考价值。
FROM conetos
VOLUMES[\'volumes01\',\'volumes02\']
容器挂载相互同步
先启动一个
docker run -it --name docker01 centos:1.0
在启动一个
docker run -it --name docker02 --volumes-from docker01 centos:1.0
--volumes-from 实现数据卷挂载同步 相当于实现了继承(docker02 extends docker01)
编写dockerfile脚本
FROM centos MAINTAINER kuangshen<24736743@qq.com> #把宿主机当前上下文的read.txt拷贝到容器/usr/local/路径下 COPY read.txt /usr/local/cincontainer.txt #把java与tomcat添加到容器中 ADD jdk-8u351-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.22.tar.gz /usr/local/ #安装vim编辑器 RUN yum -y install vim #设置工作访问时候的WORKDIR路径,登录落脚点 ENV MYPATH /usr/local WORKDIR $MYPATH #配置java与tomcat环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_351 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.22 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器运行时监听的端口 EXPOSE 8080 #启动时运行tomcat # ENTRYPOINT ["/usr/local/apache-tomcat-9.0.22/bin/startup.sh" ] # CMD ["/usr/local/apache-tomcat-9.0.22/bin/catalina.sh","run"] CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out
启动自定义tomcat
docker run -d -p 9090:8080 --name mytomcat -v /home/huoziqi/build/tomcat/test:/usr/local/apache-tomcat-9.0.70/webapps/test -v /home/huoziqi/build/tomcat/tomcatlogs:/usr/local/apache-tomcat-9.0.70/logs diytomcat:1.0
测试
linux本机curl localhost:9090
外部测试:http://192.168.2.8:9090/
Docker多阶段镜像构建Dockerfile脚本示例:构建nodejs前端项目
# 声明镜像为node:12.16.1
FROM node:12.16.1
# 声明工作目录
WORKDIR /gva_web/
# 拷贝整个web项目到当前工作目录
COPY . .
# 通过npm下载cnpm
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
# 使用cnpm进行安装依赖
RUN cnpm install || npm install
# 使用npm run build命令打包web项目
RUN npm run build
# ===================================================== 以下为多阶段构建 ==========================================================
# 声明镜像为nginx:alpine, alpine 镜像小
FROM nginx:alpine
# 镜像编写者及邮箱
LABEL MAINTAINER="SliverHorn@sliver_horn@qq.com"
# 从.docker-compose/nginx/conf.d/目录拷贝my.conf到容器内的/etc/nginx/conf.d/my.conf
COPY .docker-compose/nginx/conf.d/my.conf /etc/nginx/conf.d/my.conf
# 从第一阶段进行拷贝文件
COPY --from=0 /gva_web/dist /usr/share/nginx/html
# 查看/etc/nginx/nginx.conf文件
RUN cat /etc/nginx/nginx.conf
# 查看 /etc/nginx/conf.d/my.conf
RUN cat /etc/nginx/conf.d/my.conf
# 查看 文件是否拷贝成功
RUN ls -al /usr/share/nginx/html
以上是关于dockerfile示例的主要内容,如果未能解决你的问题,请参考以下文章
有没有人有一个 Dockerfile 和命令行的简单示例,可以将外部目录从 linux 挂载到 docker 映像中?