Dockerfile 简介

在这个简短的指南中,让我简要介绍一下 Dockerfile 并教你如何使用它来自动化构建自定义 docker 镜像的过程。 Dockerfile 只不过是一个简单的文本文件,其中包含构建 docker 映像的说明。 它包含用户可以在命令行上调用以构建映像的所有命令。 我们可以使用 dockerfile 来创建我们自己的自定义镜像。 然后我们可以通过以下方式共享这些自定义 Docker 镜像 码头工人中心. 对于那些想知道的人来说,Docker Hub 是 Docker 提供的托管存储库服务,用于查找和共享容器映像与您的团队,当然还有世界上的任何人。

想象一下这个场景。 如果我们想早点使用 詹金斯,然后我们需要安装 Jenkins,其中涉及很多步骤。 感谢 Dockerhub,我们现在可以在几分钟内下载并运行 Jenkins 的预构建容器镜像。

dockerhub 中的 Jenkins 容器镜像

要从 DockerHub 中提取 Jenkins 映像,请运行:

# docker pull Jenkins

一旦我们拉取了 docker 镜像,我们可以通过使用命令运行镜像来使用它:

# docker run -it -d -p 8080:8080 jenkins

就是这么简单!

要了解有关 Docker 使用的更多信息,请参阅以下指南。

  • 开始使用 Docker

Dockerhub 中有超过 100,000 个来自软件供应商、开源项目和社区的容器镜像。 您可以从 Dockerhub 搜索和下载您选择的任何容器映像,并立即开始使用它,如上所示。

内容

  1. 了解 Dockerfile 格式
  2. 创建 Dockerfile
  3. 使用 Dockerfile 构建镜像
    1. 帮助我们帮助您:

了解 Dockerfile 格式

Docker 可以通过读取 指示 来自 Dockerfile。

一个典型的 Dockerfile 包含以下指令:

1. – 它将设置容器的基本图像。

例子:

FROM ubuntu:18.04

它将容器的基本映像设置为 Ubuntu。 如果未指定标签 18.04,则将标签视为“最新”。

2. 标签 – 用于指定图像元数据信息的键值对。

例子:

LABEL ENV=”DEVELOPMENT”

3. – 它用于在基础镜像上执行命令,它将创建一个新层。

例子:

RUN apt-get update RUN apt-get install tomcat

4. 命令 – 用于设置容器启动时首先执行的命令。

例子:

CMD [“java”, “-jar”, “app.jar”]

5. 暴露 – 它将暴露端口以访问容器。 容器会监听这个网络端口。 我们可以访问
使用此端口的输出。

例子:

EXPOSE 8080

6. 维护者 – 它将提供创建此 Docker 映像的作者的详细信息。

例子:

MAINTAINER [email protected]

7. 环境噪声 – 用于设置键值对中的环境变量。 这些变量是在映像构建期间设置的
并且在容器创建后可用。

例子:

ENV DB_NAME=”MySQL” ENV DB_VERSION=”8.0”

8. 复制 – 用于将本地文件复制到容器中。

例子:

COPY /target/devops.jar devops.jar

9. 添加 – 它与复制相同,但具有更多功能,例如我们可以提取本地 tar 并添加远程 URL。

例子:

ADD devops.tar.xz / . ADD https://example.com/abc.git /usr/local/devops/

10. 入口点 – 用于设置图像的主要命令。 它的工作原理与 CMD 指令相同。 这
CMD 和 ENTRYPOINT 之间的唯一区别是指令不会在 ENTRYPOINT 中被覆盖。

例子:

ENTRYPOINT [“java”, “-jar”, “app.jar”]

11. 体积 – 它将创建一个具有指定名称的挂载点。

例子:

VOLUME /app/devops

12. 用户 – 它将设置运行映像时使用的用户名和用户组。

例子:

USER dhruv USER admin

13. 工作目录 – 它将设置工作目录。 如果不存在,它将创建目录。

例子:

WORKDIR /var/lib/

这是一个示例 Dockerfile 供您参考。

FROM ubuntu:latest MAINTAINER Dhruv Tiwari "[email protected]" RUN apt-get install -y software-properties-common python RUN add-apt-repository ppa:chris-lea/node.js RUN echo "deb https://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list RUN apt-get update RUN apt-get install -y nodejs RUN mkdir /var/www ADD app.js /var/www/app.js CMD ["/usr/bin/node", "/var/www/app.js"]

请允许我向您展示一个简单的示例来创建示例 Dockerfile 并使用它构建图像。

创建 Dockerfile

创建一个名为 Dockerfile,在文件中添加内容。 在以下示例中,我们正在更新和安装 vimcurl.

# cat dockerfile
FROM alpine  RUN apk update RUN apk add vim RUN apk add curl