docker build 命令用于使用Dockerfile文件来创建镜像
docker build [OPTIONS] PATH |URL| -
–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指令的网络模式
使用 -f 来指定Dockerfile文件的位置,
并把制作的镜像保存到当前目录,
没有使用 -t 来指定标签的话标签会为 < none>
#docker build -f /home/Dockerfile .
用上面这条#docker build -f /home/Dockerfile . 做好的镜像的id为e0e。。。
使用 -t 是使用
1.当前目录
2.默认的Dockerfile文件,
来指定标签为 xxx:xxx,并把制作的镜像保存到当前目录
#docker build -t xxx:xxx .
使用 -f -t 两个一起使用,-f 来指定Dockerfile文件的位置,来指定标签为 xxx:xxx,
并把制作的镜像保存到当前目录
docker build -f /home/Dockerfile -t xxx:xxx .
$ 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
看到这个数据量整个人都舒服了。