【从头开始学docker系列之四,create docker image 创建一个自己的镜像】

create docker image 创建自己的镜像

之前的教程都是在学习如何使用已有的docker镜像创建容器,今天我们学习一下,使用docker创建自己的镜像容器。
我们可以把已经开发好的应用,添加到已有的镜像文件,打包为自己的镜像文件方便使用,到快速安装部署的目的。
首先我们可以从这里下载需要用来测试打包的应用
down load Zip
这是一个待办事项的nodejs应用程序,你不必了解nodejs。这只是作为一个例子.

  • 利用 Dockerfile 来创建镜像 *
    使用 docker commit 来扩展一个镜像比较简单,但是不方便在一个团队中分享。我们可以使用 docker build 来创建一个新的镜像。
    为此,首先解压缩app.zip后 copy app文件夹到 E:\code目录下。然后重命名为dockerapp并且在这个文件夹中创建一个名为Dockerfile的文件,
    这个文件中包含一些如何创建镜像的指令。
E:\code>ren app dockerapp
E:\code>cd dockerapp

1. 在dockerapp中创建一个文件

Dockerfile是一个没有后缀名的文件,名称就是dockerfile的文本文件, 文件中每一条指令都创建镜像的一层,例如:

# This is a comment 
FROM node:12-alpine 
MAINTAINER Docker dangkei <dangkei@163.com>
RUN apk add --no-cache python g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]

2. 保存完毕后,dockerfile当前所在的目录使用docker build命令创建镜像

E:\code\dockerapp>docker build -t dockerapp .

执行后可以看到运行结果

[+] Building 34.4s (11/11) FINISHED
 => [internal] load build definition from Dockerfile                                                               0.1s
 => => transferring dockerfile: 251B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.1s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/node:12-alpine                                                  5.9s
 => [auth] library/node:pull token for registry-1.docker.io
 .
 .
 .
  => => exporting layers                                                                                            1.2s
  => => writing image sha256:c8f742b494bcee74a08ac4dc93ce9b2824a68e09d693977d3969bdddd82c1095                       0.0s
  => => naming to docker.io/library/dockerapp                                                                       0.0s

此命令使用 Dockerfile 构建新的容器镜像。您可能已经注意到下载了很多“层”。

  1. 因为我们指示构建器我们要从使用node:12-alpine镜像开始。但是,由于我们的机器上没有该镜像,因此需要下载该镜像。

  2. 下载镜像后,我们复制到我们的应用程序中并用yarn安装我们应用程序的依赖项。该CMD指令指定从该映像启动容器时要运行的默认命令。

  3. 最后,-t标志标记我们的镜像。将此简单地视为最终镜像的人类可读名称。由于我们将镜像命名为dockerapp,因此我们可以在运行容器时引用该镜像。

  4. 最后一个. 表示当前目录是为了告诉docker build命令Dockerfile文件所在的位置。

3. 现在运行docker images可以看到我们自己新创建的镜像了

E:\code\dockerapp>docker images
REPOSITORY                   TAG                                        IMAGE ID       CREATED          SIZE
dockerapp                    latest                                     c8f742b494bc   22 minutes ago   294MB

4. 使用自己创建的镜像创建容器

E:\code\dockerapp>docker run -dp 3000:3000 dockerapp
b6704592a1a6cff48fb30de95bb76af63b376ab855f3ae1dc25b289c7437697e

打开浏览器访问 http://localhost:3000端口测试一下结果

学习愉快!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dangkei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值