Dockerfile 简介

[ad_1]

在这个简短的指南中,让我简要介绍一下 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

高山的dockerfile

现在我们有了 Dockerfile。 让我们继续使用 Dockerfile 构建映像。

使用 Dockerfile 构建镜像

要从 Dockerfile 构建映像,只需运行:

# docker build -t devops .

请注意 (。) 在最后。

按照上述命令,Docker 将通过读取来自 Dockerfile 保存在当前工作目录中。

如果 Dockerfile 保存在其他地方,您可以使用 -F 像下面这样的标志。

# docker build -f /path/to/a/Dockerfile .

创建镜像后,我们可以使用命令运行它:

# docker run -it devops

这就是使用 Dockerfile 构建自定义容器映像的方式。 希望这可以帮助。 我们只介绍了基础知识。 你可以用 Dockerfile 做更多的事情。 建议你参考官方 Dockerfile 参考 指南以了解更多信息。

建议阅读:

  • 解释 Docker 网络概念
  • 用示例解释 Docker 卷
  • 如何自动更新正在运行的 Docker 容器
  • ctop – Linux 容器的命令行监控工具
  • Portainer – 管理 Docker 的最简单方法
  • PiCluster – 一个简单的、基于 Web 的 Docker 管理应用程序
  • Dockly – 从终端管理 Docker 容器

关于作者:

德鲁夫·蒂瓦里 是一名 DevOps 工程师,他喜欢自动化事物,大规模地使用 Linux,并梦想有一天系统足够智能,无需登录 Linux 机器。 CI/CD 从源代码到代码部署再到生产的旅程。

感谢您的光临!

帮助我们帮助您:

  • 订阅我们的电子邮件通讯: 立即注册
  • 支持 OSTechNix: 通过贝宝捐款
  • 下载免费的电子书和视频: TradePub 上的 OSTechNix
  • 联系我们: 红迪网 | Facebook | 推特 | 领英 | RSS订阅

祝你有美好的一天!!

DockerDocker 基础知识Docker 命令DockerfileLinux

[ad_2]

Related Posts