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

相关文章

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署