【Docker】Dockerfile基础知识,相信你一定有所收获
Dockerfile常用命令
FROM: 继承基础镜像
MAINTAINER:镜像制作作者信息
RUN: 用来执行shell命令
EXPOSE: 暴露端口号
CMD: 启动容器默认执行的命令,会被覆盖
ENTRYPOINT: 启动容器真正执行的命令,不会被覆盖
VOLUME:创建该挂载点
ENV: 配置环境变量
ADD: 复制文件到容器,一般拷贝文件,压缩包自动解压
COPY:复制文件到容器,一般可拷贝目录
WORKDIR:设置容器的工作目录
USER:容器使用的用户
接下来,列举几个Dockerfile的实例。
Dockerfile实例
1.使用RUN创建一个用户
Dockerfile文件内容如下所示。
FROM centos:6
MAINTAINER binghe
RUN useradd binghe
执行构建,如下所示。
docker build -t centos:user .
2.使用ENV定义环境变量并用CMD执行命令
Dockerfile文件内容如下所示。
FROM centos:6
MAINTAINER binghe
RUN useradd binghe
RUN mkdir binghe
ENV envir=test version=1.0
CMD echo "envir:$envir version:$version"
执行构建并启动测试:
#执行构建
docker build -t centos:evn-cmd .
#启动镜像验证EVN和CMD
docker run centos:env-cmd
3.使用ADD添加一个压缩包,使用WORKDIR改变工作目录
FROM nginx
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html
4.使用COPY拷贝目录
使用COPY拷贝指定目录下的所有文件到容器,不包括本级目录。此时只会拷贝webroot下的所有文件,不会将webroot拷贝过去:
FROM nginx
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html
COPY webroot/ .
5.设置启动容器的用户
设置启动容器的用户,在生产环境中一般不建议使用root用户启动容器,所以,可以根据公司业务场景自定义启动容器的用户:
FROM centos:6
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html
COPY webroot/ .
RUN useradd -m tomcat -u 1001
USER 1001
6.使用VOLUME创建容器可挂载点
FROM centos:6
MAINTAINER binghe
VOLUME /data
挂载目录到/data,注意:对于宿主机路径,要写绝对路径:
docker run -ti --rm -v `pwd` /web:/data centos:volume bash
写在最后
如果觉得文章对你有点帮助,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习Spring注解驱动开发。公众号回复“spring注解”关键字,领取Spring注解驱动开发核心知识图,让Spring注解驱动开发不再迷茫。
【Docker】Dockerfile基础知识,相信你一定有所收获的更多相关文章
- 快速掌握Docker必备基础知识
快速掌握Docker必备基础知识 Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种 ...
- Docker容器基础知识学习
Docker作为操作系统层面的轻量级的虚拟化技术,凭借简易的使用.快速的部署以及灵活敏捷的集成等优势,迅速发展目前最为火热的技术. 1.云计算服务是一种资源管理的资源服务,该模式可以实现随时随地.便捷 ...
- Docker的基础知识与安装(Ubantu CentOS)
Docker是一种允许特殊类型虚拟化的实用程序.Docker允许使用Docker镜像在系统上“虚拟”运行程序.可以下载或创建可以运行的图像.一旦加载并执行了图像,它现在就是一个容器.容器已为容器内的程 ...
- Docker的学习笔记(一)基础知识
概述 本人最近在学习docker相关的知识,既是工作本身的需要也是自己对技术的追求的必要,以后我也会推出容器相关的随笔,既可以增长自己的知识,也可以和读者广泛交流,岂不乐乎?话不多说.第一篇先介绍do ...
- 【转帖】使用容器化和 Docker 实现 DevOps 的基础知识
使用容器化和 Docker 实现 DevOps 的基础知识 https://www.kubernetes.org.cn/6730.html 2020-02-24 15:20 灵雀云 分类:容器 阅读( ...
- 2.Docker容器学习之新生入门必备基础知识
0x02 Docker 核心概念 描述:Docker的三大核心概念镜像/容器和仓库, 通过三大对象核心概念所构建的高效工作流程; 1.镜像 [image] 描述:images 类似于虚拟机镜像,借鉴了 ...
- Docker安装及基础知识
一.安装 & 启动 1.安装Docker [root@tokyo ~]# yum install docker 2.启动Docker服务 (1)旧式的 sysv 语法 [root@tokyo ...
- Docker03 Docker基础知识、Docker实战
1 Docker基础知识 1.1 什么是Docker Docker是一个可以装应用的容器,就像杯子可以装水.书包可以装书一样:docker官网 Docker是Docker公司开发的,并开源到GitHu ...
- PJzhang:docker基础知识的2个疗程-one
猫宁!!! 参考:http://virtual.51cto.com/art/201805/572135.htm https://www.cnblogs.com/rkit/p/9237696.html ...
- docker学习---docker基础知识
目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Re ...
随机推荐
- Springboot+LayUI实现一个简易评论系统
说明 这是个简单的评论系统,目的在于介绍简单的评论和回复功能.同时基于此可以扩展更全面的.自定义的评论系统,本工程仅供学习交流使用.喜欢的朋友给个赞:) 源码 https://gitee.com/in ...
- 解决linux下zip文件解压后中文乱码问题
最近项目上碰到在windows上压缩了一些图片,图片文件名称都是中文的,scp到linux下用unzip解压后文件名 全是乱码,找了半天解决方案,下面这个亲测可行,特记录一下,与大家分享: 原因: 由 ...
- Innodb存储引擎之锁
目录 一.概述 二.lock 与 latch 三.Innodb存储引擎中的锁 锁 一致性非锁定读 一致性锁定读 自增长与锁 外键与锁 四.锁的算法 锁的算法 Phantom Problem 幻读问题 ...
- spring源码学习之设计模式
目录 1.策略模式 2.观察者模式 3.装饰者模式 4.工厂模式 工厂方法模式 抽象工厂模式 工厂方法和抽象工厂的异同 5.单例模式 6.适配器模式与外观模式 适配器模式 外观模式 7.模板方法模式 ...
- vscode配置远程开发环境
下载vscode 下载好了后,先安装两个插件,商店里面搜索"Chinese",中文语言包, "python"安装包,安装好后重启vscode. 本地的pytho ...
- SSH 客户端
简介 OpenSSH 的客户端是二进制程序 ssh.它在 Linux/Unix 系统的位置是/usr/local/bin/ssh. Linux 系统一般都自带 ssh,如果没有就需要安装. # Ubu ...
- 名校 AI 课程|斯坦福 CS25:Transformers United 专题讲座
自 2017 年提出后,Transformer 名声大噪,不仅颠覆了自然语言处理(NLP)领域,而且在计算机视觉(CV).强化学习(RL).生成对抗网络(GANs).语音甚至是生物学等领域也大显锋芒, ...
- EXE程序缺DLL怎么办
起因 工程师发给用户一个VS编译的windows应用程序,客户反应打不开,报缺少dll.可是dll明明就在当前目录啊,为什么还会报错呢? 那应该是该DLL依赖的其它DLL不存在导致的,用depends ...
- 【Azure Developer】使用Python代码获取VM的IP地址 (Public IP + Private IP)【未解决问题标签】
记录使用以下的代码获取Azure VM中的IP地址 """Create and manage virtual machines. This script expects ...
- 【Azure 应用服务】App Service for Linux环境中,如何解决字体文件缺失的情况
问题描述 部署在App Service for Linux环境中的Web App.出现了字体文件缺失的问题,页面显示本来时中文的地方,区别变为方框占位. 问题分析 在应用中,通常涉及到显示问题的有两个 ...