2026/2/15 15:54:07
网站建设
项目流程
30天网站建设全程实录 pdf,南京广告公司排名,宿迁房产网官网,做视频类网站需要哪些许可文章目录一、具体字段二、 示例2.1、Binds2.2、ContainerIDFile2.3、LogConfig2.3.1、日志驱动支持的通用选项2.3.2、常见日志驱动及其配置示例2.3.2.1、 json-file 驱动#xff08;默认驱动#xff09;2.3.2.2、syslog 驱动2.3.2.3、 gelf 驱动2.3.2.4、awslogs 驱动2.3.2.5…文章目录一、具体字段二、 示例2.1、Binds2.2、ContainerIDFile2.3、LogConfig2.3.1、日志驱动支持的通用选项2.3.2、常见日志驱动及其配置示例2.3.2.1、 json-file 驱动默认驱动2.3.2.2、syslog 驱动2.3.2.3、 gelf 驱动2.3.2.4、awslogs 驱动2.3.2.5、fluentd 驱动三、HostConfig 和Config 差异3.1、Config 字段3.1.1、 作用3.1.2、特点3.1.3、 使用场景3.2、 HostConfig 字段3.2.1、 作用3.2.2、特点3.2.3、 使用场景3.3、 核心差异对比3.4、 关键区别总结3.5、 典型使用场景Docker 的HostConfig 是主机级配置定义容器与主机环境的交互方式控制资源分配和隔离策略。一、具体字段字段名称含义作用Binds绑定挂载列表-v 或 --mount将主机目录/文件挂载到容器内ContainerIDFile存储容器 ID 的文件路径将容器 ID 写入指定文件LogConfig日志驱动和选项配置如 json-file、syslog定义容器日志的存储方式NetworkMode网络模式如host、bridge、none控制容器的网络隔离级别PortBindings端口映射配置-p 参数将容器端口绑定到主机端口RestartPolicy重启策略如 always、on-failure定义容器异常退出后的重启行为AutoRemove容器退出后自动删除避免残留容器占用磁盘空间VolumeDriver卷驱动如 local、nfs定义卷的存储后端VolumesFrom从其他容器挂载卷共享另一个容器的卷CapAdd/CapDrop添加/移除 Linux 内核能力如 CAP_NET_ADMIN控制容器的权限范围CgroupnsModeCgroup 命名空间模式如 host、private控制容器的资源隔离级别Dns/DnsOptions/DnsSearch自定义 DNS 配置覆盖容器的 DNS 设置ExtraHosts自定义主机名解析绕过 DNS 直接映射IPIpcModeIPC进程间通信模式如 host、shareable控制容器的 IPC 资源隔离Links链接其他容器–link 参数实现容器间的服务发现OomScoreAdjOOM内存不足优先级控制容器在内存不足时被终止的顺序PidModePID 命名空间模式如 host、container控制容器的进程可见性Privileged是否赋予容器所有内核权限允许执行特权操作如加载内核模块PublishAllPorts自动发布容器暴露的端口将 EXPOSE 指令声明的端口映射到主机随机端口ReadonlyRootfs根文件系统是否只读防止容器修改文件系统SecurityOpt安全选项如 label:disable控制SELinux/AppArmor策略UTSModeUTS主机名和域名命名空间模式如 host控制容器的主机名设置UsernsMode用户命名空间模式如 host、mapped控制用户 ID 映射ShmSize共享内存大小/dev/shm限制容器的共享内存使用Runtime容器运行时如runc、containerd切换容器执行引擎CpuSharesCPU 权重相对值非硬性限制控制 CPU 资源分配比例Memory内存硬限制单位字节限制容器的最大内存使用NanoCpusCPU 配额纳秒用于 CFS限制容器的 CPU 使用时间BlkioWeight块设备 I/O 权重控制 I/O 资源分配比例PidsLimit最大进程数限制限制容器的进程数量CgroupParentCgroup 父命名空间自定义资源分组HugepageLimits大页内存限制限制大页内存使用OomKillDisable是否禁用 OOM Killer控制容器在内存不足时是否被终止CpuPeriod/CpuQuotaCPU 周期和配额用于 CFS精细控制 CPU 使用CpusetCpus/CpusetMemsCPU/Memory 分配指定容器可用的 CPU 核心和内存节点Devices设备白名单控制容器可访问的设备ConsoleSize控制台窗口大小行数 x 列数设置容器的终端尺寸Isolation隔离模式仅 Windows 容器控制容器的隔离级别BlkioWeightDevice块设备 I/O 权重按设备区分控制不同设备的 I/O 权重MemorySwap内存交换空间大小限制容器可使用的 swap 内存MemorySwappiness内存交换倾向0-100控制内存页交换比例Ulimits用户资源限制如 nofile限制容器的资源使用CpuCountCPU 核心数限制限制容器可使用的 CPU 核心数CpuPercentCPU 百分比限制限制容器的 CPU 使用百分比IOMaximumIOps最大 IOPS 限制控制容器的 I/O 性能IntelRdtL3CbmIntel RDT L3 缓存带宽管理优化多租户场景的缓存使用MaskedPaths隐藏主机文件路径提升安全性ReadonlyPaths只读挂载主机文件路径提升安全性二、 示例2.1、Binds使用docker run -v /host/path:/container/path生成宿主机和容器内目录存在$dockerrun-itd-v/tmp/test:/tmp centos:1.0 /bin/bash d6cd7fec98616490b424aa864ac3ecfeeb48e88f08f030bff2c9eb3690fbe93e $dockerinspect-f{{.HostConfig.Binds}}d6cd7fec986164[/tmp/test:/tmp]$dockerinspect d6cd7fec986164|grep-A3BindsBinds:[/tmp/test:/tmp],ContainerIDFile:,宿主机目录不存在容器引擎会创建这个目录$ ll /tmp/|greptestdrwxr-xr-x3root root4096Jul2819:06 busyboxtest drwxr-xr-x2root root4096Jan413:53test$dockerrun-itd-v/tmp/test02:/tmp centos:1.0 /bin/bash da13bd92f79305476d9ada242347aa098ee5c3c981169131326db9ad07c43c32 $ ll /tmp/|greptestdrwxr-xr-x3root root4096Jul2819:06 busyboxtest drwxr-xr-x2root root4096Jan413:53testdrwxr-xr-x2root root4096Jan413:59 test02容器目录不存在容器引擎也会创建这个目录$dockerrun-itd-v/tmp/test02:/tmp/test03 centos:1.0 /bin/bash 29db9a19a835325df6be4645b855dfd579cb7bbcde578e7b33b019d69c79ff22 $dockerexec-it29db9a19als-l/tmp total4drwxr-xr-x2root root4096Jan413:59 test03总结情况宿主机目录容器目录挂载结果注意事项宿主机目录存在容器目录不存在✅❌容器目录自动创建挂载成功容器目录内容被宿主机目录覆盖宿主机目录不存在容器目录存在❌✅宿主机目录自动创建权限允许时可能因权限问题挂载失败宿主机和容器目录都不存在❌❌两者自动创建权限允许时 宿主机目录权限不足时挂载失败宿主机和容器目录都存在✅✅容器目录内容被宿主机目录覆盖宿主机目录内容优先级更高2.2、ContainerIDFile使用--cidfile/path/to/cidfile生成$dockerrun-itd--cidfile/tmp/cid.txt centos:1.0 /bin/bash 0a7cb18828951e3ed53b546dbef840c141503cae479113caa7e35ece18b25ce1 $cat/tmp/cid.txt 0a7cb18828951e3ed53b546dbef840c141503cae479113caa7e35ece18b25ce1 $dockerinspect-f{{.HostConfig.ContainerIDFile}}0a7cb188289 /tmp/cid.txt2.3、LogConfig使用--log-driverjson-file --log-opt max-size10m生成$dockerrun-itd--log-driverjson-file --log-opt max-size10m centos:1.0 /bin/bash b12b7ebd0566af9121e780e92c78a26d95bb2fac608fdf1c4f19f72845351639 $dockerinspect-f{{.HostConfig.LogConfig}}0a7cb188289{json-file map[]}$dockerinspect b12b7ebd0566a|grep-A5LogConfigLogConfig:{Type:json-file,Config:{max-size:10m}},常见的日志驱动包括json-file、local、syslog、journald、gelf等。每个驱动支持的选项不同:$dockerrun-itd--log-driverlocal --log-opt max-size10m centos:1.0 /bin/bash de4561e95b46f68bae0bf892f6f582a5e2c6ec1cb00f114792c35ca7a469fa08 $dockerinspect de4561e95b46|grep-A5LogConfigLogConfig:{Type:local,Config:{max-size:10m}},2.3.1、日志驱动支持的通用选项选项名称作用适用驱动max-size单个日志文件的最大大小单位b, k, m, gjson-file, localmax-file保留的最大日志文件数量json-file, localtag为日志添加标识符用于区分来源所有驱动env包含指定环境变量到日志中json-file, syslogenv-regex使用正则表达式匹配环境变量json-file, sysloglabels包含指定标签到日志中json-file, sysloglabel-regex使用正则表达式匹配标签json-file, syslogcompress是否压缩旧日志文件仅 json-filejson-fileformat定义日志格式如 json, textjson-filemode日志文件权限模式如 0640json-filepath自定义日志文件路径需与 json-file 驱动配合json-filetag-field指定日志中的标签字段名json-filetimestamp-format自定义日志时间戳格式如 iso8601json-filesyslog-address指定 syslog 服务器地址如 udp://192.168.1.100:514syslogsyslog-facility设置 syslog 的 facility如 daemonsysloggelf-addressGELF 日志服务器地址如 udp://graylog.example.com:12201gelfgelf-programs映射容器命令到 GELF 的 program 字段gelfgelf-tls启用 TLS 加密如 on, offgelfaws-regionAWS Lambda 日志区域awslogsaws-logs-groupAWS CloudWatch 日志组名称awslogsaws-logs-streamAWS CloudWatch 日志流名称awslogsaws-logs-create-group是否自动创建日志组true/falseawslogsfluentd-addressFluentd 服务器地址如 localhost:24224fluentdfluentd-async是否异步发送日志true/falsefluentdfluentd-connection-limit最大并发连接数如 5fluentdfluentd-timeoutFluentd 超时时间单位秒fluentdgcp-projectGoogle Cloud Project IDgcplogsgcp-log-project日志项目如 my-projectgcplogsgcp-log日志名称如 my-containergcplogs2.3.2、常见日志驱动及其配置示例2.3.2.1、 json-file 驱动默认驱动用途本地存储 JSON 格式的日志文件。常用选项max-size限制单个日志文件大小。max-file保留日志文件数量。compress压缩旧日志文件。tag为日志添加标识符。示例dockerrun --log-driverjson-file\--log-opt max-size10m\--log-opt max-file3\--log-opttagmy-container\my_image限制日志文件最大 10MB保留 3 个文件并添加 my-container 标签。2.3.2.2、syslog 驱动用途将日志发送到系统 syslog 服务。常用选项syslog-addresssyslog 服务器地址。syslog-facility日志设施如 daemon。tag日志标签。示例dockerrun --log-driversyslog\--log-opt syslog-addressudp://192.168.1.100:514\--log-opt syslog-facilitydaemon\--log-opttagmy-container\my_image2.3.2.3、 gelf 驱动用途将日志发送到 GraylogGELF 格式。常用选项gelf-addressGraylog 服务器地址。gelf-programs映射容器命令到 program 字段格式commandprogram。示例dockerrun --log-drivergelf\--log-opt gelf-addressudp://graylog.example.com:12201\--log-opt gelf-programsmy_containermy-app\my_image2.3.2.4、awslogs 驱动用途将日志发送到 AWS CloudWatch。常用选项aws-logs-group日志组名称。aws-logs-stream日志流名称。aws-logs-create-group是否自动创建日志组。示例dockerrun --log-driverawslogs\--log-opt aws-logs-groupmy-group\--log-opt aws-logs-streammy-stream\--log-opt aws-logs-create-grouptrue\my_image2.3.2.5、fluentd 驱动用途将日志发送到 Fluentd。常用选项fluentd-addressFluentd 服务器地址。fluentd-async是否异步发送日志。示例dockerrun --log-driverfluentd\--log-opt fluentd-addresslocalhost:24224\--log-opt fluentd-asynctrue\my_image驱动常用场景适用场景json-file本地日志存储开发、调试、简单部署syslog系统日志集成传统系统日志集中管理gelfGraylog 集成日志分析平台如 GraylogawslogsAWS CloudWatchAWS 云环境fluentdFluentd 日志聚合微服务日志统一处理gcplogsGoogle Cloud PlatformGCP 云环境三、HostConfig 和Config 差异Docker 容器的 HostConfig 和 Config 是两个核心配置字段分别描述容器的运行时配置和镜像/容器自身配置。Config 是容器的 “DNA”由镜像决定定义容器的核心行为。HostConfig 是容器的 “运行时环境”由主机参数决定控制容器如何与主机资源交互。两者共同作用于容器的运行但 Config 更偏向静态属性HostConfig 更偏向动态策略。3.1、Config 字段3.1.1、 作用容器自身配置定义容器的基础属性与镜像和容器运行时行为直接相关。内容范围镜像信息如 Image容器启动命令如 Cmd、Entrypoint环境变量Env工作目录WorkingDir用户权限User暂存层Hostname、Domainname3.1.2、特点来源于镜像大部分字段由 Dockerfile 中的指令如 CMD、ENV、WORKDIR生成。静态配置通常在容器创建时固定运行时不可修改。与镜像强相关Config 是容器的基础模板继承自镜像的元数据。3.1.3、 使用场景定义容器的默认行为如启动命令、环境变量。调试容器的镜像配置如通过 docker inspect 查看 Config。3.2、 HostConfig 字段3.2.1、 作用主机级配置定义容器与主机环境的交互方式控制资源分配和隔离策略。内容范围网络模式NetworkMode端口映射PortBindings资源限制Memory、CpuShares卷挂载Binds、VolumesFrom安全策略Privileged、SecurityOpt3.2.2、特点来源于运行时参数由 docker run 命令的选项如 -p、-v、–network生成。动态配置部分字段在容器运行时可调整如通过 docker update 修改资源限制。与主机环境强相关直接控制容器如何与主机资源CPU、内存、网络交互。3.2.3、 使用场景管理容器的资源分配如限制内存、CPU。配置网络和存储如绑定挂载、端口映射。定义安全策略如启用特权模式、SELinux/AppArmor 策略。3.3、 核心差异对比维度Config 字段HostConfig 字段作用范围容器自身行为与镜像强相关容器与主机的交互与运行时强相关配置来源来自 Dockerfile 或镜像元数据来自 docker run 命令的运行时参数可修改性大部分字段不可修改运行时固定部分字段可动态调整如资源限制生命周期容器创建时确定运行时不可变容器运行时可动态更新如通过 docker update关联对象与容器和镜像直接关联与主机环境和运行时参数直接关联3.4、 关键区别总结ConfigHostConfig定义容器的 默认行为如启动命令、环境变量定义容器的 资源限制和隔离策略如内存、CPU、网络由 Dockerfile 构建镜像时生成不可通过运行时参数修改由 docker run 命令指定支持运行时动态调整如 docker update包含镜像元数据如 Image、Cmd与容器的 身份和功能 直接相关包含主机环境配置如 PortBindings、Memory与容器的 资源和安全 相关用于 镜像构建和容器初始化用于 容器运行时管理3.5、 典型使用场景Config镜像构建时设置默认命令如 CMD [“nginx”, “-g”, “daemon off;”]调试容器时查看默认环境变量Env和工作目录WorkingDirHostConfig运行容器时限制内存–memory2g和 CPU–cpus0.5挂载卷-v或设置网络模式–networkhost