容器学习 之 dockerfile 命令(七)
dockerfile中常用的命令
- FROM
指定 base 镜像。 - MAINTAINER
设置镜像的作者,可以是任意字符串。
COPY将文件从 build context 复制到镜像。 - COPY 支持两种形式:
//注意:src 只能指定 build context 中的文件或目录。
COPY src dest
COPY ["src", "dest"]
- ADD
与 COPY 类似,从 build context 复制文件到镜像。不同的是,如果 src 是归档文件(tar, zip, tgz, xz 等),文件会被自动解压到 dest。 - ENV
设置环境变量,环境变量可被后面的指令使用。例如:
…
ENV MY_VERSION 1.3
RUN apt-get install -y mypackage=$MY_VERSION
- EXPOSE
指定容器中的进程会监听某个端口,Docker 可以将该端口暴露出来。我们会在容器网络部分详细讨论。 - VOLUME
将文件或目录声明为 volume。我们会在容器存储部分详细讨论。 - WORKDIR
为后面的 RUN, CMD, ENTRYPOINT, ADD 或 COPY 指令设置镜像中的当前工作目录。 - RUN
在容器中运行指定的命令。 - CMD
容器启动时运行指定的命令。
Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效。CMD 可以被 docker run 之后的参数替换。 - ENTRYPOINT
设置容器启动时运行的命令。
Dockerfile 中可以有多个 ENTRYPOINT 指令,但只有最后一个生效。CMD 或 docker run 之后的参数会被当做参数传递给 ENTRYPOINT。
下面我们来看一个较为全面的 Dockerfile:
root@ubuntu:/home/yj/docker/test1# ls
bunch.tar.gz dockerfile tmpfile2
root@ubuntu:/home/yj/docker/test1# vim dockerfile # my dockerfile
FROM centos
MAINTAINER yangjin@qq.com
WORKDIR /testdir
RUN touch tmpfile1
COPY ["tmpfile2","."]
ADD ["bunch.tar.gz","."]
ENV WELCOME "you are in mu container,welcome!"
- 让centos镜像作为base镜像
- 设置镜像的作者
- 设置工作目录
- 把build context 中的tmpfile2移到镜像当前目录
- 把build context的bunch.tar.gz解压并移到当前目录
- 设置WELCOME环境变量
结果展示:
[root@8af6a35aa71e testdir]# cd /testdir/
[root@8af6a35aa71e testdir]# ls
bunch tmpfile1 tmpfile2
Shell 和 Exec 格式
CMD echo "Hello world"
CMD ["/bin/echo", "Hello world"]
CMD 和 ENTRYPOINT 推荐使用 Exec 格式,因为指令可读性更强,更容易理解。RUN 则两种格式都可以。
RUN,CMD,ENTRYPOITN的使用方法
- 使用 RUN 指令安装应用和软件包,构建镜像。
- 如果 Docker 镜像的用途是运行应用程序或服务,比如运行一个 MySQL,应该优先使用 Exec 格式的 ENTRYPOINT 指令。
- CMD 可为 ENTRYPOINT提供额外的默认参数,同时可利用 docker run 命令行替换默认参数
容器学习 之 dockerfile 命令(七)相关推荐
- 容器学习 之 镜像命令(九)
images 显示镜像列表 root@ubuntu:/home/yj# docker images REPOSITORY TAG IMAGE ID CREATED SIZE my-image late ...
- 容器学习Day04-Ubuntu常用命令(二)
目录 前言 一.软件包管理相关命令 1.dpkg 2.apt 二.磁盘管理相关命令 1.fdisk 2.pvcreate&pvdisplay&pvscan&pvremove 3 ...
- Docker(三):Dockerfile 命令详解
上一篇文章Docker(二):Dockerfile 使用介绍介绍了 Dockerfile 的使用,这篇文章我们来继续了解 Dockerfile ,学习 Dockerfile 各种命令的使用. Dock ...
- Docker容器学习梳理--日常操作总结
使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands:attach Attach t ...
- Docker容器学习笔记一
Docker容器学习笔记一 狂神说B站视频:https://www.bilibili.com/video/BV1og4y1q7M4?p=1 Docker容器学习笔记二:https://blog.csd ...
- 【Docker容器学习笔记一】
一.Docker概述 1.Docker为什么会出现? 一款产品: 开发–上线 两套环境!应用环境,应用配置! 开发 - 运维. 问题:我在我的电脑上可以允许!版本更新,导致服务不可用!对于运维来说考验 ...
- 赵大超的学习周志(七)
赵大超的学习周志(七) 本周是Java学习的第七周,主要是对JDBC的学习,其中包括对JDBC的概述,JDBC的六大步骤,,基本的CRUD,简易的DBUtils封装,Statement与Prepare ...
- docker入门,镜像,容器,数据卷,dockerfile,docker网络,springboot微服务打包docker镜像[狂神yyds]
docker学习大纲 docker概述 docker安装 docker命令 镜像命令 容器命令 操作命令 - docker镜像 容器数据卷 dockerfile docker网络原理 IDEA整合do ...
- Docker容器学习梳理--应用程序容器环境部署
关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用. 如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等 ...
最新文章
- Web3与智能合约交互实战
- ubuntu镜像下载地址(国内镜像源)
- 推荐系统 embedding 技术实践总结
- 西门子博途编程 - 另类状态机
- python代做在哪找靠谱_比较靠谱的资产评估师考试去哪找
- php通过ajax下载文件,通过Ajax如何请求下载Execl文件
- r720支持多少频率的内存吗_DDR4 2400到DDR4 3200,最大内存频率买多少?为什么买了高频 速度却上不去...
- AIX详细查看用户/进程使用内存
- html如何写微信弹窗,微信小程序 自定义弹窗实现过程(附代码)_而已_前端开发者...
- SpringCloud--Eureka 注册中心原理及其搭建
- 开始菜单跑到左边去了_你的车“跑偏”吗?也许是你的方向盘本身就不正
- MySQL多版本并发控制机制(MVCC)-源码浅析
- 前端vue实现PDF预览
- 412 Precondition Failed
- 谈cntv.cn的启用
- 杀毒软件工作原理 及 现在主要杀毒技术
- 基于UML的软件开发过程
- IBM__P系列 小型机 故障定位 故障排除
- echarts的gallery无法访问
- 在财报发布前,美光科技值得买入吗?