在这个简短的指南中,让我简要介绍一下 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 搜索和下载您选择的任何容器映像,并立即开始使用它,如上所示。
了解 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"]
请允许我向您展示一个简单的 example 创建一个示例 Dockerfile 并使用它构建一个图像。
创建 Dockerfile
创建一个名为 Dockerfile,在文件中添加内容。 在下面的 example,我们正在更新和安装 vim 和 curl.
# 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 | Twitter | 领英 | RSS订阅
祝你有美好的一天!!