Docker run 语句用法详解
docker run
是 Docker 命令中最核心的指令之一,用于根据指定的镜像创建并启动一个新的容器。本文将深入解析 docker run
的使用方法,包括其基本语法、选项参数以及一些高级用法,帮助你更高效地管理和运行 Docker 容器。
基本语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
此命令会基于 IMAGE
创建一个新的容器,并可选地执行 COMMAND
指定的命令及传递给该命令的 ARG
参数。接下来,我们详细探讨 docker run
支持的各种选项。
重要选项说明
运行时配置
- -d, --detach:以后台模式运行容器,并打印容器ID。
- -i, --interactive 和 -t, --tty(未直接列出,但常与
-i
一起使用):使容器的标准输入保持打开,并分配一个伪TTY,以便交互式使用。 - -e, --env:设置环境变量,格式如
-e VAR_NAME=VAR_VALUE
。 - -p, --publish:发布容器端口到主机,例如
-p 8080:80
将容器的80端口映射到主机的8080端口。 - --volume, -v(未直接列出,但常用):挂载宿主机目录或文件到容器中,格式如
-v /host/path:/container/path
。 - --name:为容器指定一个名称。
资源限制
- -m, --memory:限制容器可用内存大小。
- --cpu-shares:设置CPU份额,影响容器在多容器环境下对CPU的访问权重。
高级选项
- --restart:定义容器退出后重启策略,如
--restart always
表示始终重启。 - --rm:容器退出后自动删除容器。
- --cap-add, --cap-drop:添加或删除容器的Linux功能(capabilities)。
安全与隔离
- --privileged:给予容器更多权限,接近宿主机权限。
- --security-opt:设置安全选项,如 SELinux 标签等。
- --read-only:以只读模式挂载容器的根文件系统。
网络
- --network-alias:为容器在网络层面设置别名。
- --network:连接容器到指定网络。
- --dns:自定义DNS服务器地址。
- --shm-size:调整
/dev/shm
共享内存大小。
使用示例
启动一个交互式的 Ubuntu 容器,并在其中执行 bash
:
docker run -it ubuntu bash
以上只是 docker run
命令强大功能的冰山一角。通过组合不同的选项,你可以实现复杂的容器配置和管理需求。建议查阅 Docker 官方文档获取更详尽的信息,以便根据具体场景灵活运用 docker run
。