什么是 Dockerfile

Docker工具是大多数全球公司配置管理工具的重要组成部分。Docker 工具在 dockerfile 的帮助下运行应用程序,具有高度的抽象性和安全性。因此,许多公司正在广泛采用该工具来实现高网络可用性,服务连续性和具有高可扩展性的服务提供。

Docker如此受欢迎的原因是Docker镜像,Docker容器和Dockerfile。但是,Docker 映像只能在 Dockerfile 的帮助下创建。展望未来,让我们详细了解 Docker 和 dockerfile。

什么是 Docker?

Docker 是一种配置管理工具,用于在轻量级容器中自动部署软件。这些容器可帮助应用程序在不同环境中高效工作。

Docker 的特性:

  • 简单快速的配置
  • 应用程序隔离
  • 安全管理
  • 高生产率
  • 高可扩展性
  • 独立于基础架构

Docker容器是一个软件包,它具有运行应用程序所需的所有依赖项。

注意:Docker 映像是用于创建容器的说明模板

什么是 Dockerfile?

在我们讨论什么是 Dockerfile 之前,了解什么是 Docker 映像非常重要。

Docker 映像:

Docker图像是一个只读文件,其中包含一堆指令。执行这些指令时,它会创建一个 Docker 容器。

Dockerfile:

Dockerfile 是一个简单的文本文件,其中包含构建 Docker 映像的说明。

下面提到的是 Dockerfile 的语法:

语法

# comments

command argument argument1...

# Print "Get Certified. Get Ahead"

Run echo "Get Certified. Get Ahead"

现在,让我们看一下如何使用 dockerfile 构建 Docker 映像。

用于创建 Docker 文件的 Docker 命令列表

在我们创建第一个 Dockerfile 之前,了解构成文件的内容非常重要。

Dockerfile 由特定命令组成,这些命令指导您如何构建特定的 Docker 映像。

您可以在 dockerfile 中使用的特定命令包括:

FROM, PULL, RUN和 CMD

  • FROM - 从 ubuntu 创建一个图层:18.04
  • PULL - 从 Docker 存储库添加文件
  • RUN - 构建容器
  • CMD - 指定要在容器内运行的命令

下面提到的是具有重要命令的 dockerfile 示例

FROM ubuntu:18.04

PULL. /file

RUN make /file

CMD python /file/file.py 

查看 Dockerfile 在 docker 映像中的外观的图表表示形式:

接下来,让我们来看看创建 Docker 文件时使用的一些最常见的 Docker 命令。除了语法之外,我们还通过示例解释了命令,因此您可以立即开始试验它们。

  • ENTRYPOINT 允许指定命令以及参数

语法

ENTRYPOINT application "arg, arg1".

ENTRYPOINT echo "Hello, $name".

  • ADD 命令有助于将数据复制到 Docker 映像

语法

ADD /[source]/[destination]

ADD /root_folder/test_folder

  • ENV 为可在容器内访问的变量提供默认值

语法

ENV key value

ENV value_1

  • 维护者声明图像的作者字段

语法

MAINTAINER [name]

MAINTAINER author_name

如何使用 Dockerfile 构建 Docker 映像和 Docker 容器?

首先,您应该创建一个目录,以存储您构建的所有 Docker 映像。

  • 现在,我们将使用以下命令创建一个名为"simplidocker"的目录:

mkdir simplidocker

  • 将 Docker 映像移动到该目录中,并在其中创建一个新的空文件(Dockerfile):

cd simplidocker 

touch Dockerfile

  • 使用编辑器打开文件。在此示例中,我们使用 vi 打开文件:

vi Dockerfile

  • 然后,添加以下内容:

FROM ubuntu

MAINTAINER simpli

RUN apt-get update

CMD ["echo", "Welcome to Simplilearn"]

  • 5.保存并退出文件。

使用 Dockerfile 构建 Docker 映像

让我们首先声明将存储 dockerfile 简化器的路径

docker build [OPTIONS] PATH | URL | -

现在,让我们使用 Dockerfile 构建一个基本映像:

docker build [location of your dockerfile]

现在,通过添加 -t 标志,可以使用名称标记新映像:

# docker build  -t simpli_image:latest .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM ubuntu
 ---> ba6acccedd29
Step 2/4 : MAINTAINER simpli
 ---> Running in fa20a23e5d98
Removing intermediate container fa20a23e5d98
 ---> 0fc9243f895b
Step 3/4 : RUN apt-get update
 ---> Running in 46d60d189a84
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:3 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [821 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [726 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [30.1 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1326 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1275 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [784 kB]
Get:14 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [33.6 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1099 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1741 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [50.0 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [21.7 kB]
Fetched 20.1 MB in 1min 30s (223 kB/s)
Reading package lists...
Removing intermediate container 46d60d189a84
 ---> 248c552132af
Step 4/4 : CMD ["echo", "Welcome to Simplilearn"]
 ---> Running in 9f5fdff5bce1
Removing intermediate container 9f5fdff5bce1
 ---> 8d2bc85be97d
Successfully built 8d2bc85be97d
Successfully tagged simpli_image:latest
[root@docker simplidocker]#

创建 Docker 映像后,可以通过执行以下命令进行验证:

docker images

输出应显示存储库中可用的simpli_image。

创建新容器

现在,从我们在上一步中创建的 Docker 映像创建一个 Docker 容器。

让我们将容器命名为"simplilearn",并使用以下命令创建它:

docker run --name simplilearn simpli_image

消息"Welcome to Simplilearn"应出现在命令行中。

恭喜,你刚刚使用 Dockerfile 创建了一个 Docker 映像和一个 Docker 容器。

结论

有了这个,我们就来到了文章的结尾,什么是dockerfile。在本文中,我们讨论了什么是 docker,什么是 dockerfile、dockerfile 的语法、使用 dockerfile 创建 docker 镜像的重要命令,以及如何使用 dockerfile 构建 docker 镜像。

Supongo que te gusta

Origin blog.csdn.net/allway2/article/details/121684802
Recomendado
Clasificación