docker学习笔记一 (docker build)和build时文件过大

Docker build 命令

docker build 命令用于使用Dockerfile文件来创建镜像

docker build [OPTIONS] PATH |URL| -

OPTIONS说明:

–build-arg=[] :设置镜像创建时的变量;

–cpu-shares :设置 cpu 使用权重;

–cpu-period :限制 CPU CFS周期;

–cpu-quota :限制 CPU CFS配额;

–cpuset-cpus :指定使用的CPU id;

–cpuset-mems :指定使用的内存 id;

–disable-content-trust :忽略校验,默认开启;

-f :指定要使用的Dockerfile路径;

–force-rm :设置镜像过程中删除中间容器;

–isolation :使用容器隔离技术;

–label=[] :设置镜像使用的元数据;

-m :设置内存最大值;

–memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

–no-cache :创建镜像的过程不使用缓存;

–pull :尝试去更新镜像的新版本;

–quiet, -q :安静模式,成功后只输出镜像 ID;

–rm :设置镜像成功后删除中间容器;

–shm-size :设置/dev/shm的大小,默认值是64M;

–ulimit :Ulimit配置。

–tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

–network: 默认 default。在构建期间设置RUN指令的网络模式

实列1

使用 -f 来指定Dockerfile文件的位置,
并把制作的镜像保存到当前目录,
没有使用 -t 来指定标签的话标签会为 < none>

#docker build -f /home/Dockerfile .
用上面这条#docker build -f /home/Dockerfile . 做好的镜像的id为e0e。。。

在这里插入图片描述
没有使用 -t 来指定标签的话标签会为 < none>
在这里插入图片描述

实列2

使用 -t 是使用
1.当前目录
2.默认的Dockerfile文件,
来指定标签为 xxx:xxx,并把制作的镜像保存到当前目录

#docker build -t xxx:xxx .

实列3

使用 -f -t 两个一起使用,-f 来指定Dockerfile文件的位置,来指定标签为 xxx:xxx,
并把制作的镜像保存到当前目录

docker build -f /home/Dockerfile -t xxx:xxx .
  • 在 Docker 守护进程执行 Dockerfile 中的指令前,首先会对 Dockerfile 进行语法检查,有语法错误时会返回:*
$ docker build -t test/myapp .
Sending build context to Docker daemon 2.048 kB
Error response from daemon: Unknown instruction: RUNCMD

强调

最后需要强调的一点是:存放Dockerfile文件的文件夹最好是只有Dockerfile这一个文件,
因为他会把Dockerfile文件同级目录下的东西全部发送到Docker daemon
比如这样有其他东西就有 4.309 GB 被发送到docker daemon了

Sending build context to Docker daemon 4.309 GB

而如果是一个只存放Dockerfile这一个文件的话,就是这样只有 679.9 kB 被发送到docker daemon了

Sending build context to Docker daemon 679.9 kB

但是有时候脑袋就是这么直,我就是想要在根目录进行呢。这个时候该怎么办呢?

—— .dockerignore 。

没错了,在Dockerfile同级目录下添加一个 .dockerignore 文件。

在 .dockerignore 中添加需要忽略的文件或者文件夹即可。于是在添加之后:

Sending build context to Docker daemon 679.9 kB

看到这个数据量整个人都舒服了。

如果有用的记得点赞收藏哟

你可能感兴趣的:(笔记)