彬彬有礼的! 通过复制粘贴介绍docker~Dockerfile和docker build版~

你好。
我是Mandai,负责Wild 开发团队。
作为 Docker 系列教程的第二部分,您可以复制粘贴使用,我想尝试一下 Docker 构建命令。
一旦您能够执行 Docker 构建,
- 您可以通过修改现有的 Docker 镜像来创建新的 Docker 镜像。
- 创建类似的 Docker 镜像时,如果存在一个基础 Docker 镜像,则过程会更加容易。
- 如果是虚拟机镜像,打包好的镜像将使用 Vagrant 进行分发;但如果是 Docker 镜像,则只会分发 Dockerfile 和要放入 Docker 容器中的文件。
其优势包括:
第一部分在这里 →这将解决 PHP 版本升级问题!只需复制粘贴即可完成 Docker 入门介绍
那么,我们开始吧。
使用 docker build 命令来构建 Docker 镜像。
首先,在主机操作系统上创建一个目录,用于存储构建过程中使用的文件。
vagrant@vagrant:~$ mkdir docker_php7 vagrant@vagrant:~$ cd docker_php7
需要特别注意的是,使用 Dockerfile 创建新的 Docker 镜像时,您无法访问 Dockerfile 所在目录之上的目录。
因此,COPY 和 ADD 命令所需的文件必须放置在 Dockerfile 所在的目录下。
接下来,在主机操作系统上创建 PHP 文件,该文件将被放置在 Docker 容器中。
vagrant@vagrant:~/docker_php7$ echo "<?php phpinfo();" > info.php
接下来,创建 Dockerfile。
vagrant@vagrant:~/docker_php7$ vi Dockerfile # Dockerfile 的内容 FROM php:7.0.2-apache # 执行 docker build 时指定基础 Docker 镜像(必需) MAINTAINER Y.Mandai Beyond Inc. # Dockerfile 维护者信息(可选) COPY info.php /var/www/html/ # 将 info.php 复制到容器的 /var/www/html/ 目录 EXPOSE 80 # 将容器的 80 端口对外开放(以便主机操作系统可以访问)
如果您查看
php:7.0-apache 的 Dockerfile ,您会发现容器构建命令包含在容器内编译 PHP,这非常有用。
参考这一点,您可以创建一个包含多字节相关扩展模块的 Docker 镜像。
现在,让我们使用 Docker build 创建一个 Docker 镜像。
vagrant@vagrant:~/docker_php7$ docker build -t addinfo .向 Docker 守护进程发送构建上下文 3.072 kB 步骤 1:FROM php:7.0.2-apache ---> 797e8c22cdde 步骤 2:MAINTAINER Y.Mandai Beyond Inc. ---> 运行于 49c22633979a ---> 8550f12577fd 移除中间容器 49c22633979a 步骤 3:COPY info.php /var/www/html/ ---> 9e143b3f9df5 移除中间容器 b70897d9000e 步骤 4:EXPOSE 80 ---> 运行于 31b54ea14f9f ---> 38445ad62923 移除中间容器 31b54ea14f9f
-t 选项设置 Docker 镜像的名称,最后的“.”指定 Dockerfile 的路径。
docker build -t addinfo:hogehoge .
你也可以使用标签 hogehoge 创建它。
让我们用 docker images 命令来检查一下。
vagrant@vagrant:~/docker_php7$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE addinfo latest 31b54ea14f9f 大约一小时前 521 MB php 7.0.2-apache 797e8c22cdde 5周前 521 MB
现在我们已经创建了一个新的 Docker 镜像,接下来我们将从中创建一个 Docker 容器。
vagrant@vagrant:~/docker_php7$ docker run -d -p 8080:80 addinfo 862db6201b865a12415d4602219b03714605e0a89f2fa3076ae2161cf271d666
现在我们已经将容器上的 80 端口映射到主机操作系统上的 8080 端口,让我们检查一下是否可以从主机端使用 curl 执行 info.php。
vagrant@vagrant:~/docker_php7$ curl http://localhost:8080/info.php
如果显示了 phpinfo() 的内容,则说明实验成功了!
就是这样。
如果您觉得这篇文章有帮助,请点赞!
1