Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker image build常用命令。

1、docker image build简介

docker image build是 Docker 提供的一个命令行工具,用于构建 Docker 镜像。通过编写 Dockerfile 文件并使用 docker image build 命令,我们可以自动化地构建和打包镜像,并将其推送到 Docker Hub 或私有镜像仓库中。

2、docker image build 语法

docker image build [OPTIONS] PATH | URL | -

参考文档:https://docs.docker.com/engine/reference/commandline/image_build/

3、docker image build 命令

1)在本地创建一个名为 “myapp” 的目录,并在其中创建一个名为 “Dockerfile” 的文件

2)打开 “Dockerfile” 文件,在其中添加以下内容

# 使用一个现有的Docker镜像作为基础
FROM ubuntu:latest
# 安装应用程序所需的软件包
RUN apt-get update && apt-get install -y \
    curl \
    nginx
# 复制应用程序代码到镜像中
COPY ./myapp /usr/share/nginx/html
# 暴露端口号
EXPOSE 80
# 启动Nginx Web服务器
CMD ["nginx", "-g", "daemon off;"]

3)构建Docker镜像

docker image build -t myapp:1.0 .

注意:-t选项指定了镜像的名称和版本号,.表示当前目录中的Dockerfile文件。

4、命令选项

简称

默认值

描述

--add-host

添加自定义主机到ip映射(host:ip)

--build-arg

设置构建时变量

--cache-from

镜像的缓存源

--cgroup-parent

容器的可选父cgroup

--compress

使用gzip压缩构建context

--cpu-period

限制CPU CFS(完全公平调度器)周期

--cpu-quota

限制CPU CFS(完全公平调度器)配额

--cpu-shares

,

-c

CPU份额(相对权重)

--cpuset-cpus

允许执行的cpu(0-3, 0,1)

--cpuset-mems

允许执行的MEMs (0-3, 0,1)

--disable-content-trust

true

跳过镜像验证

--file , -f

Dockerfile的文件名(默认是PATH/Dockerfile)

--force-rm

始终删除中间容器

--iidfile

将镜像ID写入文件

--isolation

容器隔离技术

--label

设置镜像的元数据

--memory , -m

内存限制

--memory-swap

Swap limit等于memory加上Swap: -1,表示无限制交换

--network

在构建期间为运行指令设置网络模式

--no-cache

在构建镜像时不使用缓存

--platform

如果服务器支持多平台,请设置平台

--pull

总是尝试拉取镜像的新版本

--quiet , -q

关闭构建输出并在成功时打印镜像ID

--rm

true

在成功构建后移除中间容器

--security-opt

安全选项

--shm-size

/dev/shm的大小

--squash

experimental (daemon)

将新建的镜像层压缩为一个新镜像层

--tag , -t

名称和name:tag格式的可选标签

--target

设定要构建的目标构建阶段。

--ulimit

Ulimit选项

5、子命令

命令

描述

docker image build

从Dockerfile构建镜像

docker image history

显示图像的历史

docker image import

从压缩包中导入内容以创建文件系统映像

docker image inspect

显示一个或多个镜像的详细信息

docker image load

从tar存档文件或STDIN加载镜像

docker image ls

镜像列表

docker image prune

移除未使用的镜像

docker image pull

从registry下载镜像

docker image push

上传镜像到registry

docker image rm

删除一个或多个镜像

docker image save

保存一个或多个镜像到tar存档(默认流式到STDOUT)

docker image tag

创建一个指向SOURCE_IMAGE的TARGET_IMAGE标签

推荐文档

相关文档

大家感兴趣的内容

随机列表