目录
- [docker build](#docker build)
- wget
- [docker run](#docker run)
- [docker compose](#docker compose)
-
- [为什么docker compose比docker build 和run快很多?](#为什么docker compose比docker build 和run快很多?)
docker build
bash
docker build -t mineru:latest
docker build 命令是 Docker 的核心命令之一,用于从 Dockerfile 构建新的 Docker 镜像。
docker build:这是 Docker 构建镜像的命令。
-t:这是指定标签(tag)的选项。在 Docker 中,标签用于区分不同的镜像。如果不指定标签,Docker 会默认使用 作为标签。
mineru:latest:这是指定的标签名称和标签值。在这里,mineru 是镜像的名称,latest 表示这是一个最新版本的镜像。在 Docker 中,latest 标签通常用来表示最新版本的镜像,但你也可以使用其他标签来区分不同版本的镜像。
(没有指定路径):在 -t mineru:latest 之后没有指定路径,这意味着 Docker 会默认使用当前目录(.)作为构建上下文。构建上下文是指 Docker 在构建镜像时需要的文件集合,通常是包含 Dockerfile 的目录。
因为没有指定路径,默认使用当前目录,而我的目录啥也没有,所以会找不到上下文。
原来是忘记复制命令最后还有一个点,这个点用来表示指定路径(当前目录)
正常构建镜像应该是
wget
bash
wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile
wget 是一个非常流行的命令行工具,用于从网络上下载文件。
docker run
bash
docker run hello-world
检查本地是否已有 hello-world 镜像:Docker 会检查本地是否已经下载了 hello-world 这个镜像。如果没有,它会尝试从 Docker Hub 下载。
下载镜像:如果本地没有 hello-world 镜像,Docker 会从 Docker Hub(默认的 Docker 镜像仓库)下载这个镜像。
创建容器:下载完镜像后,Docker 会使用这个镜像创建一个新的容器。
运行容器:容器创建后,Docker 会运行这个容器。
执行命令:对于 hello-world 这个镜像,它会执行一个简单的程序,打印出一条欢迎信息,并显示一些关于 Docker 的信息。
退出容器:hello-world 程序执行完毕后,容器会退出。
清理资源:Docker 会清理容器的运行环境,但由于 hello-world 容器没有改变任何状态,所以实际上没有太多需要清理的。
docker compose
bash
docker compose -f docker-compose.yml up -d
docker compose:
这是 Docker 的命令行工具,用于管理和运行多容器 Docker 应用。docker compose 是 Docker 的一个子命令,允许用户通过定义的配置文件来启动和管理多个 Docker 容器。
-f docker-compose.yml:
-f 选项用于指定 Docker Compose 文件的路径。docker-compose.yml 是默认的文件名,通常用于定义服务、网络和卷等配置。如果你的文件名不同,或者文件不在当前目录,你可以通过这个选项指定文件的路径。-f就是file,文件路径
up:
up 是一个 Docker Compose 命令,用于构建、(重新)创建、启动和附加到服务的容器。它会根据 docker-compose.yml 文件中的定义来启动所有指定的服务。
-d:
-d 选项表示"分离模式"(detached mode)。在这个模式下,Docker Compose 会在后台运行容器,而不是将输出流直接显示在终端中。这样,你可以继续使用终端而不被容器的输出信息所干扰。
为什么docker compose比docker build 和run快很多?
本地缓存的利用、并行启动、