Katacoda Docker系列场景三:Building Container Images

本文详细介绍了如何使用Dockerfile创建和运行基于NGINX的基础镜像。首先从选择基础镜像开始,接着通过RUN指令进行配置,COPY指令将文件从主机复制到镜像,EXPOSE指令暴露80端口,CMD定义启动容器时的默认命令,最后通过docker build构建镜像并使用docker run运行。
摘要由CSDN通过智能技术生成

本例子中主要介绍如何书写Dockerfile并且构建运行镜像。

Step1 基础镜像

所有的Docker镜像都来源于基础镜像,是应用的基础。

在这个例子中,在部署静态HTML文件前,需要用NGINX,因此选择NGINX作为基础镜像。

首先在Dockerfile中使用如下语句指定基础镜像

FROM <image-name>:<tag>

本例子中使用的便是

FROM nginx:1.11-alpine

当然,可以使用latest而非具体的版本,但是指定具体版本会让你更有安全感并且方便升级。

Step2 运行指令

Dockerfile中,可以使用很多指令来配置基础镜像,常用的主要有COPYRUN命令。

  • RUN命令允许执行任何你想要你的镜像执行的命令,例如安装不同的应用或者运行一些构建脚本。RUN命令执行的结果将会被持久化在构建的镜像中,因此要注意,一些临时的或者不必要的文件将会被保留。
  • COPY <src> <dest>命令允许将文件从宿主机拷贝到容器镜像中。

则有完整的Dockerfile

FROM nginx:1.11-alpine
COPY index.html /usr/share/nginx/html/index.html

Step3 暴露端口

使用EXPOSE <port>命令指定Docker将打开并且绑定的端口。一次性可以指定多个端口,例如

EXPOSE 80 433
EXPOSE 7000-8000

对于NGINX,选择暴露80端口

FROM nginx:1.11-alpine
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80

Step4 默认命令

我们还需要指定如何启动应用。

Dockerfile中的CMD行定义了当启动容器时默认执行的命令。

如果命令需要参数,则推荐使用一个数组。例如

["cmd", "-a", "arga value", "-b", "argb-value"]

将会被解释为

cmd -a "arga value" -b argb-value

对于NGINX,默认的命令为

nginx -g daemon off

可以在Dockerfile中写作

CMD ["nginx", "-g", "daemon off;"]

另外的一个方式便是使用ENTRYPOINT。

Step5 构建镜像

使用docker build命令构建镜像。

docker build -t my-nginx-image:latest

Step6 运行镜像

docker run -d -p 80:80 <image-id|friendly-tag-name>

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值