Docker run
命令提供了丰富的参数选项,用于配置容器的各种设置。以下是docker run
命令的主要参数详解,
主要参数详解
-
后台运行与前台交互
-d
,--detach
: 在后台运行容器,并返回容器ID。-it
: 分配一个伪终端(pseudo-TTY),并与容器进行交互。通常两者结合使用:-it
。
-
容器名称与主机名
--name
: 为容器指定一个名称。-h
,--hostname
: 设置容器的主机名。
-
端口映射
-p
,--publish
: 将容器的端口映射到主机的一个端口。例如:-p 8080:80
将容器的80端口映射到主机的8080端口。
-
卷挂载
-v
,--volume
: 挂载主机的目录或文件到容器内。例如:-v /host/path:/container/path
。
-
环境变量
-e
,--env
: 设置环境变量。例如:-e KEY=value
。--env-file
: 从文件中读取环境变量。
-
资源限制
-m
,--memory
: 设置容器的内存限制。--cpus
: 设置容器可以使用的CPU数量。
-
重启策略
--restart
: 设置容器的重启策略。例如:--restart=always
使得容器在退出时总是重启。
-
网络设置
--network
: 指定容器运行的网络。
-
其他常用选项
--privileged
: 给予容器内进程几乎与宿主机root用户等同的权限。--rm
: 容器退出后自动删除容器和其中的文件系统。--cap-add
和--cap-drop
: 增加或删除容器的Linux能力(capabilities)。--dns
: 设置容器的DNS服务器。--dns-search
: 设置容器的DNS搜索域。
示例(Demo)
使用docker run
命令创建一个容器,并设置一些常用参数:
docker run \
--name my-nginx-container \ # 设置容器的名称为 my-nginx-container
-h my-nginx-hostname \ # 设置容器的主机名为 my-nginx-hostname
-v /my/host/nginx/conf:/etc/nginx/conf.d \ # 挂载宿主机目录到容器的 /etc/nginx/conf.d
-v /my/host/nginx/logs:/var/log/nginx \ # 挂载宿主机目录到容器的 /var/log/nginx
-m 256m \ # 限制容器的内存使用量为 256MB
--cpus 1 \ # 限制容器使用 1 个 CPU 核心
--restart=always \ # 设置容器的重启策略为始终重启
--network my-custom-network \ # 指定容器运行的网络为 my-custom-network
--privileged \ # 给予容器内进程几乎与宿主机root用户等同的权限
-e NGINX_PORT=80 \ # 设置环境变量 NGINX_PORT 为 80
--env-file /my/host/nginx/env.list \ # 从文件中读取环境变量
-p 8080:80 \ # 将容器的 80 端口映射到宿主机的 8080 端口
-d \ # 在后台运行容器
nginx:latest # 使用 nginx 的 latest 镜像
使用nginx:latest
镜像创建一个名为my-test
的容器,在后台运行,并将容器的80端口映射到主机的8080端口。同时,它还挂载了主机的/my/data
目录到容器的/data
目录,并设置了环境变量DEBUG
为true
。