docker系列之file基本操作

dockerfile基础操作

Dockerfile 是记录了镜像是如何被构建出来的配置文件, 可以被 docker 直接执行以创建一个镜像. 它的样子:

FROM ubuntu:14.04
MAINTAINER YS.Zou <>

ADD run /root/run
ADD sources.list /etc/apt/sources.list
ADD id_rsa.pub /tmp/pubkey
ADD requirements /root/requirements

RUN mkdir -p /root/.ssh &&     cat /tmp/pubkey >> /root/.ssh/authorized_keys &&     rm -rf /tmp/pubkey
...

CMD ["bash", "/root/run"]

  

把文件命名为 Dockerfile , 进入文件所在目录, 输入:

docker build .

就可以开始构建过程, 并且得到一个新的镜像了.

Dockerfile 支持一些很简单的命令:

FROM
以哪个镜像为基础开始构建.
MAINTAINER
作者信息.
RUN
运行一条命令.
CMD
docker run IMAGE_ID cmd 这里的默认命令.
ENTRYPOINT
docker run IMAGE_ID cmd 这里的默认命令的前面部分, run 中 cmd 可以作为后续参数.
EXPOSE
声明会用到的端口.
ENV
设置环境变量
ADD
从当前目录复制文件到容器. 会自动处理目录, 压缩包等情况.
COPY
从当前目录复制文件到容器. 只是单纯地复制文件.
VOLUME
声明一个数据卷, 可用于挂载.
USER
RUN 命令执行时的用户.
WORKDIR
RUNCMDENTRYPOINT 这些命令执行时的当前目录.
ONBUILD
前缀命令, 放在上面这些命令前面, 表示生成的镜像再次作为"基础镜像"被用于构建时, 要执行的命令.

build 的过程, 会依次执行上面的命令, 实际上, docker 做的事, 也就是从基础镜像启一个容器, 然后执行一条命令, 修改之后提交此容器为新镜像. 以此类推, 直到所有命令都执行完. 所以在得到最终构建的镜像时, 会生成很多"中间镜像". 而如果 Dockerfile 中某条命令有错, 也是在当前中止, 过程中的"中间镜像"及"当前构建用的容器"仍然存在的.

原文地址:https://www.cnblogs.com/yinfutao/p/9198503.html

时间: 2024-10-07 22:57:00

docker系列之file基本操作的相关文章

Docker 容器基本操作[Docker 系列-2]

?Docker 入门及安装[Docker 系列-1] 镜像就像是一个安装程序,而容器则是程序运行时的一个状态. 查看容器 查看容器 启动 docker 后,使用 docker ps 命令可以查看当前正在运行的容器: 查看所有容器 上面这条命令是查看当前正在运行的容器,如果需要查看所有容器,则可以通过 docker ps-a 命令查看: 在查看容器时,涉及到几个查看参数,含义分别如下: CONTAINER ID:CONTAINER ID是指容器的id,是一个唯一标识符,这是一个64位的十六进制整数

TortoiseGit学习系列之TortoiseGit基本操作拉取项目(图文详解)

前面博客 TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseGit学习系列之TortoiseGit基本操作将提交到本地的项目推送到在线仓库(图文详解) TortoiseGit基本操作拉取项目 如果本地的项目没有在线仓库的新,则需要执行拉取操作(Pull ...). 在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 拉取... 或: Pull.... 弹出拉取(pull)对话框: [如果拉取有BUG,请不要使用 rebas

8天入门docker系列 —— 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署

原文:8天入门docker系列 -- 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署 这一篇继续完善webnotebook,如果你读过上一篇的内容,你应该知道怎么去挂载webnotebook日志和容器的远程访问,但是这些还远不够,webnotebook 总要和一些数据库打交道吧,比如说mysql,mongodb,redis,通常情况下这些存储设备要么是以容器的方式承载,要么是由DBA在非容器环境下统一管理. 一:webnotebook连接容器redis

&lt;VR + Docker&gt; 系列文章和視頻

<VR+Docker> 系列文章和視頻 << 視頻 >>                              ss ● VR整合许多新技术,也冒出许多新商业模式,例如VR素材IP热潮. ● 腾讯公司董事会主席马化腾 也提出了:<IP价值将被"引爆">. ● VR内容的关键在于3D素材,素材的商业价值就是IP. ● 有商业价值就有新商业模式,而设计有效商业模式和策略,即现商机. ● 素材的标准化,可让商机极大化:例如,符合Docker

Docker系列

Docker系列之(四):Win10上运行Docker http://www.cnblogs.com/ee900222/p/docker_4.html

Flux7 Docker 系列教程(一):Docker 简介

本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第一篇 Part 1: An Introduction.  该系列所有文章将参考其他学习资料翻译,也会加入自己的学习作为部分注解.如有错误,欢迎指正. Docker,一种新的容器化技术,因为轻量级和便携化而受到广泛关注.Docker 和 Java 一样,号称"一次构建,一次配置,即可到处运行"(build once, configure once and run anywhere).本篇文

TortoiseGit学习系列之TortoiseGit基本操作将提交到本地的项目推送到在线仓库(图文详解)

前面博客 TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseGit基本操作将提交到本地的项目推送到在线仓库 推送是提交的下一步操作. 在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 推送... 或: Push.... 弹出推送(push)对话框: 一般保持默认,点击 "确定" 按钮. 然后弹出推送进度界面,可能要求你输入用户名: 确定OK,然后要求输入密码: 密码输入正确后,OK,显示推送成功界面:  

【Docker系列教程之三】Docker容器是如何工作的

在上一篇的文章中,我给大家主要介绍了一下 Docker 环境的搭建,简单的讲解了一下 Docker 架构,以及用 Docker 命令简单演示了一下如何拉去一个 images 镜像.本篇我们将剖析一下 Docker 容器是如何工作的,学习好Docker容器工作的原理,我们就可以自己去管理我们的容器了. Docker架构 在上一篇文章的学习中,我们简单地讲解了Docker的基本架构.了解到了 Docker 使用的是 C/S 结构,即客户端/服务器体系结构.明白了 Docker 客户端与 Docker

Docker系列之实战:3.安装MariaDB

环境 [[email protected] ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) [[email protected] ~]# docker -v Docker version 18.09.1, build 4c52b90 第一步:搜索和拉取官方MariaDB镜像 https://hub.docker.com/_/mariadb 基于ubuntu:trusty ### 搜索镜像 docker search