docker run 命令解析
docker run 命令用于从给定的镜像启动一个新的容器。这个命令可以包含许多选项,下面是一些常用的选项:
-d:后台运行容器,并返回容器ID;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name:为容器指定一个名称;
-p:指定端口映射,格式为:hostPort:containerPort;
-v:挂载一个目录或文件;
--rm:当容器退出时自动删除容器及其日志;
--env:设置环境变量;
--network:连接容器到一个网络。
-u:指定用户
--privileged:为该容器提供扩展权限,即具备所有的Capabilities。
在容器中可以通过cat /proc/self/status | grep CapEff
来判断容器是否以特权模式启动
代码示例
docker run -d -u root --privileged --name test -p 8080:80 -v /host/data:/container/data -e MY_ENV_VAR=123 image:latest
这个命令会在后台启动一个以root用户运行的,名为 test的特权模式的容器,将主机的 8080 端口映射到容器的 80 端口,将主机上的 /host/data 目录挂载到容器的 /container/data 目录,并设置环境变量 MY_ENV_VAR 的值为123。使用的镜像是 image:latest