前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker学习笔记(2):使用Dockerfile构建镜像

Docker学习笔记(2):使用Dockerfile构建镜像

作者头像
布禾
修改2020-11-19 10:10:25
5440
修改2020-11-19 10:10:25
举报
文章被收录于专栏:好好学习,天天向上

Dockerfile是用来构建Docker镜像的文件,是由一系列命令和参数构成的脚本。每条指令都必须为大写字母且后面要跟随至少一个参数,每条指令都会创建一个新的镜像层,并对镜像进行提交。

Dockerfile指令

FROM 初始化一个新的构建阶段,并为后续指令设置基本镜像。

RUN 容器构建时需要运行的命令。将在当前镜像之上的新层中执行任何命令并提交结果。生成的提交镜像将用于Dockerfile中的下一步。

EXPOSE 当前容器在运行时监听指定的网络端口,可以指定端口监听TCP还是UDP,如果没有指定协议,则默认为TCP。

WORKDIR 指定在创建容器后,终端默认登录进来的工作目录。

ENV 用来在构建镜像过程中设置环境变量。

ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包。

COPY 类似ADD,拷贝文件和目录到镜像中。

VOLUME 容器数据卷,用于数据保存和持久化工作。

CMD 指定一个容器启动时运行的命令。一个Dockerfile中只能有一条CMD指令,如果有多条CMD指令,那么只有最后一个CMD会生效,并且CMD会被docker run之后的参数替换。

ENTRYPOINT 指定一个容器启动时运行的命令。docker run的命令行参数将追加到ENTRYPOINT中的所有元素之后。

ONBUILD 当构建一个被继承的DockerFile时运行命令,父镜像在被子继承后父镜像的onbuild被触发。

USER 设置用户名(或UID)和可选的用户组(或GID),以便在运行镜像时使用。

构建一个SpringBoot镜像

1.编写dockerfile文件:

代码语言:javascript
复制
FROM centos
WORKDIR /myjar
RUN yum -y install java-1.8.0-openjdk.x86_64  
COPY ./demo-0.0.1-SNAPSHOT.jar /myjar/demo.jar
EXPOSE 8080
CMD ["java","-jar","demo.jar"]

2.构建镜像

代码语言:javascript
复制
docker build -f dockerfile -t buhe/demo:1.0 .

输出:

代码语言:javascript
复制
Sending build context to Docker daemon  17.58MB
Step 1/6 : FROM centos
 ---> 470671670cac
Step 2/6 : WORKDIR /myjar
 ---> Running in 1f4ecc625997
Removing intermediate container 1f4ecc625997
 ---> 51d72f80b218
Step 3/6 : RUN yum -y install java-1.8.0-openjdk.x86_64
 ---> Running in 5988467076a7
......

3.查看构建的镜像

4.运行

代码语言:javascript
复制
docker run -d -p 8080:8080  buhe/demo:1.0

5.访问

代码语言:javascript
复制
curl -i http://localhost:8080/hello

输出:

代码语言:javascript
复制
HTTP/1.1 200 
Content-Type: text/plain;charset=UTF-8
Content-Length: 14
Date: Tue, 18 Feb 2020 08:56:02 GMT

Hello World!!!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Dockerfile指令
  • 构建一个SpringBoot镜像
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档