在这个简短的指南中,让我简要介绍一下 Dockerfile 并教你如何使用它来自动化构建自定义 docker 镜像的过程。 Dockerfile 只不过是一个简单的文本文件,其中包含构建 docker 映像的说明。 它包含用户可以在命令行上调用以构建映像的所有命令。 我们可以使用 dockerfile 来创建我们自己的自定义镜像。 然后我们可以通过以下方式共享这些自定义 Docker 镜像 码头工人中心. 对于那些想知道的人来说,Docker Hub 是 Docker 提供的托管存储库服务,用于查找和共享容器映像与您的团队,当然还有世界上的任何人。
想象一下这个场景。 如果我们想早点使用 詹金斯,然后我们需要安装 Jenkins,其中涉及很多步骤。 感谢 Dockerhub,我们现在可以在几分钟内下载并运行 Jenkins 的预构建容器镜像。
要从 DockerHub 中提取 Jenkins 映像,请运行:
# docker pull Jenkins
一旦我们拉取了 docker 镜像,我们可以通过使用命令运行镜像来使用它:
# docker run -it -d -p 8080:8080 jenkins
就是这么简单!
要了解有关 Docker 使用的更多信息,请参阅以下指南。
- 开始使用 Docker
Dockerhub 中有超过 100,000 个来自软件供应商、开源项目和社区的容器镜像。 您可以从 Dockerhub 搜索和下载您选择的任何容器映像,并立即开始使用它,如上所示。
内容
了解 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,在文件中添加内容。 在以下示例中,我们正在更新和安装 vim 和 curl.
# cat dockerfile
FROM alpine RUN apk update RUN apk add vim RUN apk add curl