Docker基础篇7:Dockerfile指令(2)

2024-08-28 19:08

本文主要是介绍Docker基础篇7:Dockerfile指令(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、Dockerfile指令构建jdk

1、创建目录

[root@VM_190_147_centos ~]# mkdir -p /usr/local/dockerjdk8 

2、下载jdk-8u171-linux-x64.tar.gz并上传到服务器中的/usr/local/dockerjdk8目录

3、创建Dockerfile文件

[root@VM_190_147_centos dockerjdk8]# vim Dockerfile 
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

4、构建

[root@VM_190_147_centos dockerjdk8]# docker build -t jdk1.8 -f ./Dockerfile .

5、启动容器

[root@VM_190_147_centos dockerjdk8]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jdk1.8              latest              5e1d02ea7b37        2 minutes ago       588MB

 

2、Dockerfile指令构建nginx

1、第一步:我们从官网下载nginx1.14.1.gz版本的nginx,把该文件及nginx.config文件上传至目录/opt/my_dockerfile/nginx。

[root@aliyun205 nginx]# pwd
/opt/my_dockerfile/nginx
[root@aliyun205 nginx]# ls
nginx-1.14.1.gz  nginx.conf

2、第二步:编辑Dockerfile文件 


[root@aliyun205 nginx]# vim Dockerfile 
FROM centos:7
MAINTAINER kefei@163.com
RUN yum install -y gcc gcc-c++ make openssl-devel pcre-devel
ADD nginx-1.14.1.gz /tmp
RUN cd /tmp/nginx-1.14.1 && \./configure --prefix=/usr/local/nginx && \make -j 2 && \make install
RUN rm -rf /tmp/nginx-1.14.1* && yum clean all
COPY nginx.conf /usr/local/nginx/conf
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["./sbin/nginx", "-g", "daemon off;"]

3、构建镜像

#构建docker镜像
[root@aliyun205 nginx]# docker build -t nginx/v1  -f /opt/my_dockerfile/nginx/Dockerfile .---> 4d588af208b2
Step 7/10 : COPY nginx.conf /usr/local/nginx/conf---> cab2c1c73a9a
Step 8/10 : WORKDIR /usr/local/nginx---> Running in 801613f705c7
Removing intermediate container 801613f705c7---> 94ce54d3573c
Step 9/10 : EXPOSE 80---> Running in eafb05bca0b1
Removing intermediate container eafb05bca0b1---> 7c274508e263
Step 10/10 : CMD ["./sbin/nginx", "-g", "daemon off;"]---> Running in bf175eabe49c
Removing intermediate container bf175eabe49c---> cf318195e70a
Successfully built cf318195e70a
Successfully tagged nginx/v1:latest

 

这篇关于Docker基础篇7:Dockerfile指令(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115635

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J