Dockerfile简介
dockerfile只不过是一个简单的文本文件,具有构建Docker镜像的说明。
它包含用户可以在命令行上调用以构建图像的所有命令。
我们可以使用dockerfile创建自己的自定义图像。
然后,我们可以通过Docker Hub共享这些自定义Docker镜像。
对于那些想知道的人来说,Docker Hub是Docker提供的托管存储库服务,用于与团队查找和共享容器图像,当然与世界上任何人一起使用。
早些时候,如果我们想使用Jenkins,那么我们需要安装jenkins,涉及许多步骤。
有了DockerHub,我们现在可以在几分钟内下载并运行Jenkins的预构建容器图像。
从DockerHub中拉Jenkins图像,运行:
# docker pull Jenkins
一旦我们拔下了Docker镜像,我们就可以使用命令运行镜像来使用它:
# docker run -it -d -p 8080:8080 jenkins
这很简单!
要了解更多有关Docker使用情况的信息,请参阅以下教程。
- Docker搬家
软件供应商,开源项目以及DockerHub中可用的社区有超过100,000个Docker图像。
我们可以从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
- CMD使用它用于在容器启动时设置要首先执行的命令。
例子:
CMD [“java”, “-jar”, “app.jar”]
5.公开它将公开端口以访问容器。
容器将倾听此网络端口。
我们可以访问
使用此端口的输出。
例子:
EXPOSE 8080
6.维护者它将提供创建此Docker图像的作者的细节。
例子:
MAINTAINER Hyman@theitroad
- ENV它用于在键值对中设置环境变量。
这些变量在图像构建过程中设置
并在Docker创建后可用。
例子:
ENV DB_NAME=”MySQL” ENV DB_VERSION=”8.0”
8.复制它用于将本地文件复制到容器。
例子:
COPY /target/devops.jar devops.jar
9.添加它与副本相同但具有更多功能,如我们可以提取本地tar并添加远程URL。
例子:
ADD devops.tar.xz/. ADD http://example.com/abc.git /usr/local/devops/
10.用于为图像设置MAM命令的EntryPoint。
它与CMD指令一样。
这
CMD和RESTPOINT之间的区别在于RESTPOINT中不会覆盖指令。
例子:
ENTRYPOINT [“java”, “-jar”, “app.jar”]
11.卷它将创建具有指定名称的挂载点。
例子:
VOLUME /app/devops
12.用户将在运行图像时设置用户名和用户组。
例子:
USER dhruv USER admin
- Workdir它将设置工作目录。
如果不存在,它将创建目录。
例子:
WORKDIR /var/lib/
这是一个用于我们参考的示例Dockerfile。
FROM ubuntu:latest MAINTAINER Dhruv Tiwari "Hyman@theitroad" RUN apt-get install -y software-properties-common python RUN add-apt-repository ppa:chris-lea/node.js RUN echo "deb http://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
现在我们有Docker文件到位。
让我们继续使用dockerfile构建镜像。
使用dockerfile构建镜像
要从Dockerfile构建镜像,只需运行:
# docker build -t devops .
根据上面的命令,Docker将通过读取在当前工作目录中保存的DockerFile的指令自动启动镜像。
如果dockerfile保存在其他地方,则可以使用下面的-f标志提及其路径。
# docker build -f /path/to/a/Dockerfile .
创建镜像后,我们可以使用命令运行它:
# docker run -it devops