docker-run的参数含义
docker run 是用于启动 Docker 容器的命令。它有许多参数可以帮助你定制容器的行为。以下是常用的 docker run 参数和它们的作用:
基本参数
-d或--detach
让容器在后台运行,并返回容器 ID。1
docker run -d <image_name>
-it
启动容器并附加到容器的标准输入流,通常用于交互式模式。-i使容器保持标准输入流,-t使其分配一个伪终端。1
docker run -it <image_name> /bin/bash
--name <container_name>
给容器指定一个名称,方便后续操作。1
docker run --name mycontainer <image_name>
-p <host_port>:<container_port>
将容器的端口映射到主机端口。例如,将容器的 80 端口映射到主机的 8080 端口。1
docker run -p 8080:80 <image_name>
-e <key>=<value>
设置环境变量,通常用于传递配置参数给容器中的应用程序。1
docker run -e TZ=Asia/Shanghai <image_name>
-v <host_path>:<container_path>
挂载宿主机的文件夹或文件到容器中,进行数据共享。例如,将宿主机的/host/data文件夹挂载到容器的/data目录。1
docker run -v /host/data:/data <image_name>
--rm
容器停止后自动删除容器。这对于运行临时容器特别有用。1
docker run --rm <image_name>
高级参数
-a <stream>
将容器的输入/输出流与主机的终端连接。你可以指定stdin、stdout或stderr。1
docker run -a stdin -a stdout -a stderr <image_name>
--network <network_name>
指定容器连接的网络,可以是 Docker 创建的网络或自定义的网络。默认情况下,容器会连接到bridge网络。1
docker run --network host <image_name>
--link <container_name>
让一个容器链接到另一个容器,通过容器名称访问对方。1
docker run --link <container_name> <image_name>
--env-file <file>
从一个文件加载环境变量,可以是一个.env文件。1
docker run --env-file ./myenvfile.env <image_name>
--restart <policy>
设置容器的重启策略,确保容器在某些情况下自动重启。常用的重启策略有:no: 不自动重启always: 无论容器退出状态如何,都重启unless-stopped: 容器停止后只有在 Docker 服务重启时才重启on-failure: 容器退出状态码为非零时重启
1
docker run --restart unless-stopped <image_name>
-u <user>
以指定的用户身份运行容器中的进程。例如,使用root用户运行:1
docker run -u root <image_name>
-h <hostname>
设置容器的主机名。1
docker run -h myhostname <image_name>
--cpu-shares <value>
设置容器的 CPU 资源份额(相对值),允许容器使用的 CPU 资源的比例。1
docker run --cpu-shares 512 <image_name>
--memory <limit>
设置容器使用的最大内存限制。例如,限制内存为 512MB:1
docker run --memory 512m <image_name>
--memory-swap <limit>
设置容器可以使用的总内存(包括内存和交换空间)。通常与--memory配合使用。1
docker run --memory-swap 1g <image_name>
--privileged
赋予容器更多权限,通常用于需要访问硬件的应用。1
docker run --privileged <image_name>
容器调试和日志
--log-driver <driver>
设置日志驱动程序,用于指定日志输出格式。可以选择json-file、syslog等。1
docker run --log-driver syslog <image_name>
--entrypoint <command>
设置容器启动时的命令,替代镜像的默认命令。1
docker run --entrypoint /bin/bash <image_name>
其他常用参数
-h或--help
查看docker run命令的帮助信息,列出所有支持的参数:1
docker run --help
-p <host_port>:<container_port>
将容器的端口映射到主机端口。这对于需要与外部网络交互的应用程序很有用。1
docker run -p 8080:80 <image_name>
示例命令
运行一个后台容器并映射端口
1
docker run -d -p 8080:80 --name webserver nginx
运行一个容器并挂载宿主机的目录
1
docker run -d -v /home/user/data:/data --name mycontainer myimage
运行一个容器并设置环境变量
1
docker run -d -e MY_ENV=production --name myapp myapp_image
限制容器内存使用
1
docker run -d --memory=512m --name mycontainer myimage
给容器指定重启策略
1
docker run -d --restart=unless-stopped --name mycontainer myimage
总结
docker run 是启动容器时最常用的命令,提供了许多参数供你配置容器的行为。从挂载目录、设置环境变量到限制资源使用,掌握这些参数将使你能够灵活地管理和运行 Docker 容器。