RUN vs CMD vs ENTRYPOINT – 每天5分钟玩转 Docker 容器技术(17)

RUN vs CMD vs ENTRYPOINT – 每天5分钟玩转 Docker 容器技术(17)

每天5分钟Docker 2天前 CloudMan6

RUN、CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似很容易混淆。本节将通过实践详细讨论它们的区别。 简单的说 (1)RUN 执行命令并创建新的镜像层RUN 经常用于安装软件包。 (2)CMD 设置容器启动后默认执行的命令及其参数但 CMD 能够被 docker run 后面跟的命令行参数替换。 (3)ENTRYPOINT 配置容器启动时运行的命令。 下面我们详细

Dockerfile 常用指令 – 每天5分钟玩转 Docker 容器技术(16)

Dockerfile 常用指令 – 每天5分钟玩转 Docker 容器技术(16)

每天5分钟Docker 2天前 CloudMan6

是时候系统学习 Dockerfile 了。 下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档。 FROM 指定 base 镜像。 MAINTAINER 设置镜像的作者,可以是任意字符串。 COPY 将文件从 build context 复制到镜像。 COPY 支持两种形式: (1)COPY src dest (2)COPY ["src", "dest"] 注意:src

调试 Dockerfile – 每天5分钟玩转 Docker 容器技术(15)

调试 Dockerfile – 每天5分钟玩转 Docker 容器技术(15)

每天5分钟Docker 2天前 CloudMan6

包括 Dockerfile 在内的任何脚本和程序都会出错。有错并不可怕,但必须有办法排查,所以本节讨论如何 debug Dockerfile。 先回顾一下通过 Dockerfile 构建镜像的过程: (1)从 base 镜像运行一个容器。 (2)执行一条指令,对容器做修改。 (3)执行类似 docker commit 的操作,生成一个新的镜像层。 (4)Docker 再基于刚刚提交的镜像运行一个新

镜像的缓存特性 – 每天5分钟玩转 Docker 容器技术(14)

镜像的缓存特性 – 每天5分钟玩转 Docker 容器技术(14)

每天5分钟Docker 3天前 CloudMan6

上一节我们学习了镜像的分层结构,今天讨论镜像的缓存特性。 Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建。 举例说明。 在前面的 Dockerfile 中添加一点新内容,往镜像中复制一个文件: root@ubuntu:~# ls           ① Dockerfile  testfile root@ubuntu:~# root@ubuntu

Dockerfile 构建镜像 – 每天5分钟玩转容器技术(13)

Dockerfile 构建镜像 – 每天5分钟玩转容器技术(13)

每天5分钟Docker 3天前 CloudMan6

Dockerfile 是一个文本文件,记录了镜像构建的所有步骤。 第一个 Dockerfile 用 Dockerfile 创建上节的 ubuntu-with-vi,其内容则为: 下面我们运行 docker build 命令构建镜像并详细分析每个细节。 root@ubuntu:~# pwd         ① /root root@ubuntu:~# ls          ② Dockerfile

构建镜像 – 每天5分钟玩转容器技术(12)

构建镜像 – 每天5分钟玩转容器技术(12)

每天5分钟Docker 3天前 CloudMan6

对于 Docker 用户来说,最好的情况是不需要自己创建镜像。几乎所有常用的数据库、中间件、应用软件等都有现成的 Docker 官方镜像或其他人和组织创建的镜像,我们只需要稍作配置就可以直接使用。 使用现成镜像的好处除了省去自己做镜像的工作量外,更重要的是可以利用前人的经验。特别是使用那些官方镜像,因为 Docker 的工程师知道如何更好的在容器中运行软件。 当然,某些情况下我们也不得不自己构建镜

镜像的分层结构 – 每天5分钟玩转容器技术(11)

镜像的分层结构 – 每天5分钟玩转容器技术(11)

每天5分钟Docker 4天前 CloudMan6

Docker 支持通过扩展现有镜像,创建新的镜像。 实际上,Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的。比如我们现在构建一个新的镜像,Dockerfile 如下: ① 新镜像不再是从 scratch 开始,而是直接在 Debian base 镜像上构建。 ② 安装 emacs 编辑器。 ③ 安装 apache2。、 ④ 容器启动时运行 bas

base 镜像 – 每天5分钟玩转容器技术(10)

base 镜像 – 每天5分钟玩转容器技术(10)

每天5分钟Docker 7天前 CloudMan6

上一节我们介绍了最小的 Docker 镜像本节讨论 base 镜像。 base 镜像有两层含义 1、不依赖其他镜像从 scratch 构建。 2、其他镜像可以之为基础进行扩展。 所以能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像比如 Ubuntu, Debian, CentOS 等。 我们以 CentOS 为例考察 base 镜像包含哪些内容。 下载镜像 docke

最小的镜像 – 每天5分钟玩转容器技术(9)

最小的镜像 – 每天5分钟玩转容器技术(9)

每天5分钟Docker 7天前 CloudMan6

镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。 本章内容安排如下: 首先通过研究几个典型的镜像,分析镜像的内部结构。 然后学习如何构建自己的镜像。 最后介绍怎样管理和分发镜像。 镜像的内部结构 为什么我们要讨论镜像的内部结构? 如果只是使用镜像,当然不需要了解,直接通过 docker 命令下载和运行就可以了。 但如果我们想创建自己的镜像,或者想理解 Docker 为

Docker 组件如何协作?- 每天5分钟玩转容器技术(8)

Docker 组件如何协作?- 每天5分钟玩转容器技术(8)

每天5分钟Docker 3周前 (12-28) CloudMan6

还记得我们运行的第一个容器吗?现在通过它来体会一下 Docker 各个组件是如何协作的。 容器启动过程如下: Docker 客户端执行 docker run 命令。 Docker daemon 发现本地没有 httpd 镜像。 daemon 从 Docker Hub 下载镜像。 下载完成,镜像 httpd 被保存到本地。 Docker daemon 启动容器。 docker images 可以查看

Docker 架构详解 – 每天5分钟玩转容器技术(7)

Docker 架构详解 – 每天5分钟玩转容器技术(7)

每天5分钟Docker 3周前 (12-25) CloudMan6

Docker 的核心组件包括: Docker 客户端 - Client Docker 服务器 - Docker daemon Docker 镜像 - Image Registry Docker 容器 - Container Docker 架构如下图所示: Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个

容器 What, Why, How – 每天5分钟玩转容器技术(6)

容器 What, Why, How – 每天5分钟玩转容器技术(6)

每天5分钟Docker 4周前 (12-20) CloudMan6

学习任何东西都可以按照3W的框架进行,容器技术也是一样,先回答 What、Why 和 How 这三个问题。 What - 什么是容器? 容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。 容器与虚拟机 谈到容器,就不得不将它与虚拟机进行对比,因为

运行第一个容器 – 每天5分钟玩转容器技术(4)

运行第一个容器 – 每天5分钟玩转容器技术(4)

每天5分钟Docker 4周前 (12-20) CloudMan6

为了让大家对容器有个感性认识,我们将尽快让一个容器运行起来。 首先我们需要搭建实验环境。 环境选择 容器需要管理工具、runtime 和操作系统,我们的选择如下: 管理工具 - Docker Engine 因为 Docker 最流行使用最广泛。 runtime - runc Docker 的默认 runtime 操作系统 - Ubuntu 虽然存在诸如 CoreOS 的容器 OS,因考虑到我们目前

容器生态系统 (续) – 每天5分钟玩转容器技术(3)

容器生态系统 (续) – 每天5分钟玩转容器技术(3)

每天5分钟Docker 4周前 (12-19) CloudMan6

容器生态系统包含核心技术、平台技术和支持技术三个方面。上一节我们讨论了核心技术,今天讨论另外两个部分。 容器平台技术 容器核心技术使得容器能够在单个 host 上运行。而容器平台技术能够让容器作为集群在分布式环境中运行。 容器平台技术包括容器编排引擎、容器管理平台和基于容器的 PaaS。 容器编排引擎 基于容器的应用一般会采用微服务架构。在这种架构下,应用被划分为不同的组件,并以服务的形式运行在各

容器生态系统 – 每天5分钟玩转容器技术(2)

容器生态系统 – 每天5分钟玩转容器技术(2)

每天5分钟Docker 4周前 (12-19) CloudMan6

对于像容器这类平台级别的技术,通常涉及的知识范围会很广,相关的软件,解决方案也会很多,初学者往往容易迷失。 那怎么办呢? 我们可以从生活经验中寻找答案。 当我们去陌生城市旅游想了解一下这个城市一般我们会怎么做? 我想大部分人应该会打开手机看一下这个城市的地图: 城市大概的位置和地理形状是什么? 都由哪几个区或县组成? 主要的交通干道是哪几条? 同样的道理,学习容器技术我们可以先从天上鸟瞰一下: 容

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

扫一扫二维码分享