[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

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

你好。
我是Mandai,负责Wild 开发团队。

作为复制粘贴 docker 系列的第 2 部分,我想尝试 docker build 命令。
一旦你可以进行 docker build,

  • 您可以通过修改现有的 docker 镜像来创建新的 docker 镜像。
  • 创建类似的 docker 镜像时,拥有基础 docker 镜像会更容易。
  • 如果是 VM 映像,您将分发用 vagrant 打包的映像,但如果是 docker 映像,则只会分发 Dockerfile 和放置在 docker 容器中的文件。

有以下优点:

单击此处查看第 1 部分→友善且礼貌! 通过复制粘贴介绍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();" >信息.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 端口(从主机 OS 可见)

查看
php:7.0-apache 的 Dockerfile ,容器构建命令包括在容器内编译 PHP,这非常有帮助。
参考此,您可以创建包含多字节相关扩展模块的docker镜像。

现在,让我们使用 docker build 创建一个 docker 镜像。

vagrant@vagrant:~/docker_php7$ docker build -t addinfo . 将构建上下文发送到 Docker 守护进程 3.072 kB 第 1 步:来自 php:7.0.2-apache ---> 797e8c22cdde 第 2 步:维护者 Y.Mandai Beyond Inc. -- -> 在 49c22633979a 中运行 ---> 8550f12577fd 删除中间容器 49c22633979a 步骤 3:COPY info.php /var/www/html/ ---> 9e143b3f9df5 删除中间容器 b70897d9000e 步骤 4:EXPOSE 80 ---> 在 31b5 中运行4ea14f 9f - --> 38445ad62923 删除中间容器 31b54ea14f9f

使用-t选项设置docker镜像的名称,并使用最后的“.”指定Dockerfile的路径。

docker build -t addinfo:hogehoge 。

您还可以使用标签 hogehoge 创建一个。

让我们检查一下 docker images 命令。

vagrant@vagrant:~/docker_php7$ docker images 存储库标签 创建的镜像 ID 虚拟大小 addinfo 最新 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
加载中...
1 票,平均:1.00 / 11
726
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者

万代洋一

我的主要工作是为社交游戏开发 Web API,但我也很幸运能够做很多其他工作,包括营销。
此外,我在 Beyond 中的肖像权被视为 CC0。