前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker系列教程08-Dockerfile实战

Docker系列教程08-Dockerfile实战

作者头像
用户1516716
发布2018-04-03 14:59:48
3.6K0
发布2018-04-03 14:59:48
举报
文章被收录于专栏:A周立SpringCloud

本节通过几个例子,来工具Dockerfile的知识。

实战1:使用Dockerfile修改Nginx首页

创建一个Dockerfile,内容如下:

代码语言:javascript
复制
FROM nginx
RUN echo '<h1>Spring Cloud与Docker微服务实战</h1>' > /usr/share/nginx/html/index.html

实战2:使用Dockerfile在CentOS 7中安装Nginx

尽管Docker Hub中已存在基于CentOS 7的镜像,但仍可使用本例的内容学习、巩固Dockerfile的相关知识。

基于CentOS 7镜像,在其中安装Nginx,并启动。

提示:默认Nginx不在官方Yum仓库中,需要先安装RPMS仓库包,这样才能用Yum安装Nginx。安装RPMS包的命令如下:

代码语言:javascript
复制
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

答案

代码语言:javascript
复制
FROM centos:7
RUN rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum -y install nginx
RUN sed -i '1i\daemon off;' /etc/nginx/nginx.conf
ENTRYPOINT nginx

实战3:使用Dockerfile构建一个Spring Boot应用镜像

有一个Java应用,在裸机中的启动命令是 java-jar xxx.jar ,请将其制作成Docker镜像,并启动。

答案

代码语言:javascript
复制
# 基于哪个镜像
FROM java:8

# 将本地文件夹挂载到当前容器
VOLUME /tmp

# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
ADD xxxxx.jar app.jar /app.jar'

# 声明需要暴露的端口
EXPOSE 8761

# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

巩固:阅读常用软件的Dockerfile

  • Nginx:https://github.com/nginxinc/docker-nginx/blob/849fed0093112cd9f55491fccd2f861eb9fad5f9/stable/alpine/Dockerfile
  • Tomcat:https://github.com/docker-library/tomcat/blob/0e9a915bf893faa9160ab1a144c7ba5049a4fe27/7/jre7-alpine/Dockerfile
  • 关于Alpine Linux:http://www.cnblogs.com/zhangmingcheng/p/7122386.html
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 A周立SpringCloud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实战1:使用Dockerfile修改Nginx首页
  • 实战2:使用Dockerfile在CentOS 7中安装Nginx
  • 实战3:使用Dockerfile构建一个Spring Boot应用镜像
  • 巩固:阅读常用软件的Dockerfile
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档