使用docker构建自己的镜像

使用docker构建自己的镜像

在实际的应用部署当中,会有需要构建自己镜像的情况,尤其是那些只需要使用功能的无状态应用,以下以nginx为例,简单介绍docker镜像构建过程

1. 编写Dockerfile文件

在待构建镜像的文件夹下,创建Dockerfile文件,并添加如下内容:

FROM nginx
LABEL maintainer="whoami@gmail.com"
COPY dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

文件中各行的含义:
FROM 代表使用的原始镜像, 这里的nginx没有指定版本会使用最新的镜像
LABEL 作用是为镜像添加元数据,便于管理和描述
COPY 是从构建上下文复制文件或目录到镜像中的指定路径
EXPOSE 声明容器运行时监听的端口,用于在运行容器时进行端口映射
CMD 提供容器启动时默认执行的命令及其参数,一个 Dockerfile 只能有一个 CMD 指令。如果 Dockerfile 中有多个 CMD,只有最后一个会被执行。CMD 可以被 docker run 指令后面的命令所覆盖。

2. 添加发布的web文件

在Dockerfile中我们指定了将dist目录下的文件拷贝到容器中/usr/share/nginx/html 目录,故而在构建路径下需要dist目录,并且在其中有相应的文件,通常情况下,前端打包发布时会生成相应的文件,此处我们添加一个index.html用于测试,添加文件后的目录结构如下图所示
在这里插入图片描述

3. 执行镜像构建

在构建路径下执行 如下指令进行构建

docker build -t nginx-local .

其中,-t 指定镜像的标签,后面的. 号,代表当前路径
运行类似有如下输出
在这里插入图片描述

4. 启动容器并验证

执行如下指令,使用自身构建的镜像启动容器

docker run -d --name nginx-test -p 8088:80 nginx-local

在浏览器中访问 http://localhost:8088 即可打开打包到镜像中的index.html文件

5. 拓展

在Dockerfile中,还有其它的指令,包括RUN、ENTRYPOINT、ENV、VOLUME 、HEALTHCHECK 等,这些指令在构建镜像当中经常使用,大家可以进一步熟悉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值