命令解释
build
docker build
是 Docker 中用于从 Dockerfile 构建镜像的命令。
-t, --tag
:为镜像指定一个名称和标签,通常格式为name:tag
。- 作用:为构建的镜像设置一个易于识别的名称和版本标签。
- 示例:
docker build -t myimage:latest .
-f, --file
:指定 Dockerfile 文件的路径或名称。- 作用:允许用户指定一个自定义的 Dockerfile,而不是使用默认的 "PATH/Dockerfile"。
- 示例:
docker build -f /path/to/Dockerfile -t myimage:latest .
--build-arg
:设置构建时的变量。- 作用:在构建过程中传递变量,这些变量在 Dockerfile 中通过
ARG
指令定义。 - 示例:
docker build --build-arg HTTP_PROXY=http://proxy.example.com -t myimage:latest .
- 作用:在构建过程中传递变量,这些变量在 Dockerfile 中通过
--no-cache
:构建镜像时不使用缓存。- 作用:忽略缓存,确保每次构建都是基于最新的 Dockerfile 和基础镜像。
- 示例:
docker build --no-cache -t myimage:latest .
--pull
:尝试拉取基础镜像的最新版本。- 作用:在构建之前更新基础镜像,确保使用的是最新的版本。
- 示例:未提供具体示例,但可以在命令中添加
--pull
参数来实现此功能。
--rm
:构建成功后删除中间容器。- 作用:清理构建过程中产生的临时容器,避免占用空间。
- 示例:
docker build --rm -t myimage:latest .
(注意:此参数默认启用,通常不需要显式指定)
-m, --memory
:设置内存的最大值。- 作用:限制构建过程中容器可以使用的内存量。
- 示例:
docker build -m 512m -t myimage:latest .
--network
:在构建期间设置RUN
指令的网络模式。- 作用:允许为构建过程中的容器设置网络模式,如 "none", "host", 或 "default"。
- 示例:未提供具体示例,但可以在命令中添加
--network
参数来实现此功能。
--progress
:设置构建进度输出模式。- 作用:控制构建过程中的输出显示方式,如 "auto", "plain", 或 "tty"。
- 示例:
docker build --progress=plain -t myimage:latest .
--squash
:将新构建的层压缩成单个新层。- 作用:减少镜像层数,使镜像更加紧凑。
- 示例:未提供具体示例,但可以在命令中添加
--squash
参数来实现此功能。
run
-d, --detach
:后台运行容器。- 作用:让容器在后台运行,相当于启动一个服务。
- 示例:
docker run -d myimage
--name
:为容器指定一个名称。- 作用:给容器设置一个易于识别的名称,而不是默认生成的名称。
- 示例:
docker run --name mycontainer myimage
-p, --publish
:端口映射。- 作用:将容器内部的端口映射到宿主机的端口。
- 示例:
docker run -p 4000:80 myimage
(将容器的80端口映射到宿主机的4000端口)
-e, --env
:设置环境变量。- 作用:在容器内部设置环境变量。
- 示例:
docker run -e "ENV_VAR=value" myimage
-v, --volume
:挂载卷。- 作用:将宿主机的文件系统挂载到容器内部,用于数据持久化。
- 示例:
docker run -v /host/path:/container/path myimage
--network
:指定容器的网络连接。- 作用:设置容器的网络模式,如 "bridge", "host", "none", 或自定义网络。
- 示例:
docker run --network=host myimage
--restart
:重启策略。- 作用:设置容器在退出时的重启策略,如 "no", "always", "unless-stopped" 等。
- 示例:
docker run --restart always myimage
--cpus
:限制容器可以使用的CPU资源。- 作用:为容器设置CPU使用的限制。
- 示例:
docker run --cpus="2.0" myimage
-m, --memory
:限制容器可以使用的内存。- 作用:为容器设置内存使用的限制。
- 示例:
docker run -m 512m myimage
--link
:链接到另一个容器。- 作用:将一个容器链接到另一个容器,以便它们可以相互通信。
- 示例:
docker run --link dbcontainer:db myimage
(将myimage
容器链接到名为dbcontainer
的容器)
--rm
:容器退出时自动清理容器文件系统。- 作用:当容器停止时,自动删除容器,用于临时或一次性任务。
- 示例:
docker run --rm -it myimage bash
-it
:分配一个伪终端并保持 STDIN 打开。- 作用:用于交互式容器,提供一个终端,允许用户与容器内部进程交互。
- 示例:
docker run -it myimage bash
--detach-keys
:覆盖容器脱离键的默认值。- 作用:设置从容器中分离的按键组合。
- 示例:
docker run --detach-keys ctrl-q,ctrl-a myimage
--entrypoint
:覆盖 Dockerfile 中的 ENTRYPOINT 指令。- 作用:指定容器启动时执行的命令。
- 示例:
docker run --entrypoint /bin/bash myimage
--gpus
:限制容器可以使用的GPU资源。- 作用:为容器设置GPU使用的限制。
- 示例:
docker run --gpus all myimage
rabbitmq
docker pull rabbitmq:management //下载RabbitMQ镜像
docker run --name rabbit --restart=always -p 15672:15672 -p 5672:5672 -d rabbitmq:management //启动RabbitMQ,默认guest用户,密码也是guest。