使用Dockerfile创建自己的docker镜像

前言

docker理论之类的就不说了,网上一大顿,直接说我们最关心的,就是如何构建我们自己的镜像

镜像是 Docker 的基础,它是容器运行环境的静态模板,包含了应用以及依赖环境。

制作镜像步骤如下:

1.准备构建环境:

镜像构建环境,就是制作镜像的目录,里面包含了制作镜像所需要的所有资源,包含应用、配置文件、其他资源等。

2.编写 Dockerfile 文件:

Dockerfile 文件包含了镜像构建时需要执行的命令,包括拷贝需要的文件到镜像里面、镜像启动时执行的命令等。

3.使用 docker build 命令构建镜像:

docker build 命令将逐条执行Dockerfile 文件里的命令来构建镜像。

4.发布镜像:

把镜像发布到镜像中心供其他人使用

通用建议

1.每个容器只运行一个应用,每个容器只运行一个应用让部署变得清晰明了。

2.最小化镜像层数

Dockerfile的每句话都会在构建镜像时形成一个镜像层,由于一个镜像是有最大层数限制的(计算时还要加上基础镜像的层数),所以尽量减少Dockerfile的命令语句可以减少镜像的层数,比如可以把多条run语句合并成一条。

docker语法说明

Docker 可以通过读取一个 Dockerfile 文件里面的指令来自动构建镜像。Dockerfile是一个文本文件,它包含了用户在构建一个镜像时会在命令行里调用的所有命令。用户可以使用dockerbuild命令来自动执行Dockerfile里的一系列命令行指令,以便构建出自己想要的镜像。

用法

创建一个空目录,在里面创建 Dockerfile 文件,进入该目录执行以下语句构建镜像(注意最后的'.'):

$ docker build -t myapp:1.0 . -t后面的myapp 代表镜像名,1.0代表镜像版本号,如果不指定版本号,则Docker会自动给你设一个版本号latest。‘

’格式

Dockerfile的格式如下:

# Comment

指令

1.FROM

FROM <image>:<tag> FROM指令设置后续指令的基础镜像。

FROM指令必须是 Dockerfile 中第一条非注释的指令。

tag是可选的。如果您省略了,构建器将会使用默认值latest。

例子:

FROM myapplication:1.0.0

2.MAINTAINER

MAINTAINER <name>

MAINTAINER指令用来在生成的镜像中设置作者域。

例子:

MAINTAINER myname “myname"


多余的指令这里就不一一列出了,具体可以查阅docker教程

基于tomcat镜像创建应用docmanager的镜像

 

1. 准备构建环境

新建 doc文件夹,将 docmanager-deploy.war包解压到 docmanager文件

 

2. 编写 Dockerfile

示例 Dockerfile 内容如下:


 

Dockerfile 解释如下:

 

 

1.注释说明 Dockerfile 的作用;

2.注释说明 Dockerfile 的版本信息;

3.选择tomcat作为基础镜像;

4.添加 Dockerfile 的维护者信息;

5.添加 docmanager目录到 tomcat 相应目录下;

 

3. 制作镜像

 

使用 docker build 命令来制作镜像,注意命令末尾的'.':

# docker build -t docmanager :1.0.0 .

 

4 查看制作镜像

 

 

5. 发布镜像

 

镜像制作完成后,只能在本地使用,需要发布到镜像中心,用户才能使用。 使用docker push命令将本地镜像发布到私有镜像中心****.docker.com(如果有的话):

docker push ****.docker.com/子目录

 

6. 测试镜像

 

docker run -it -p 8090:8080 docmanager:1.0.0

docker run -it -p 8090:8080 docmanager:1.0.0

 

7.查看运行结果

可以看到,自己制作的镜像已经在容器中启动,本人自己制作过程,经过验证,可以使用。

本文侧重于实践,理论方面可以更多的参考docker官网,里面绝对有你想要的任何东西,可能制作的镜像比较简单,没有用到一些命令,但是这不是本文的重点,纯属个人学习笔记,非喜勿喷,欢迎交流!

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值