参数 | 说明 |
---|---|
-i, –interactive | 即使不是交互模式也保持stdin打开 |
-d, –detach | 后台运行容器并打印容器ID |
-t, –tty | 分配一个伪TTY |
添加自定义主机映射
|
|
添加linux功能
linux内核特性,提供权限访问控制。如需要特殊权限,不赋权限容器将不能正常运行。
将容器pid写入一个文件内
|
|
将主机列表添加到容器中
|
|
设置自定义dns
|
|
设置容器的环境变量
|
|
暴露端口或指定范围的端口号
|
|
为容器指定主机名
|
|
为容器分配ip
创建网络
|
|
查看网络
|
|
删除网络
|
|
指定容器网络
|
|
查看容器信息
|
|
link建立容器之间的连接
|
|
|
|
log-driver
docker 容器默认日志保存位置
/var/lib/docker/containers/container-json.log
|
|
可以在启动时将日志输出到指定位置。
驱动 | 介绍 |
---|---|
none | 不输出日志 |
json-file | Docker的默认日志记录驱动程序,格式为JSON。 |
syslog | 将日志消息写入syslog |
journald | 将日志消息写入journald。 journald守护程序必须在主机上运行。 |
gelf | 将日志消息写入Graylog扩展日志格式(GELF)端点,例如Graylog或Logstash。 |
fluentd | 将日志消息写入流利(正向输入)。流利的守护程序必须在主机上运行 |
awslogs | 将日志消息写入Amazon CloudWatch Logs。 |
splunk | 使用HTTP事件收集器将日志消息写入splunk |
etwlogs | 将日志消息写为Windows事件跟踪(ETW)事件。仅适用于Windows平台。 |
gcplogs | 将日志消息写入Google Cloud Platform(GCP)日志记录。 |
nats | 用于Docker的nats NATS日志记录驱动程序。将日志条目发布到NATS服务器。 |
指定日志驱动测试
|
|
|
|
挂载宿主机的分区到容器
Use bind mounts | Docker Documentation
将容器的端口映射到宿主机上
|
|
将expose声明的所有端口映射到宿主机的随机端口
-P 容器down掉自动重启
|
|
设置文件描述符大小
|
|
资源限制
例1:限制cpu使用数量
|
|
使用stress测试cpu使用情况
测试机器为双核4G硬件资源
1. 限制两颗CPU
|
|
在宿主机上top查看
|
|
- 将cpu增加至4核,查看cpu状态
|
|
2. 限制1颗CPU
限制容器只使用1核cpu。观察容器状态。发现容器将使用率均衡在其他核心上。
|
|
结论:对于进程来说是没有 CPU 个数这一概念的,内核只能通过进程消耗的 CPU 时间片来统计出进程占用 CPU 的百分比。这也是我们看到的各种工具中都使用百分比来说明 CPU 使用率的原因。
官方文档:Limit a container’s resources | Docker Documentation
指定固定的 CPU
|
|
top查看cpu状态,发现只有固定的一个cpu被使用
|
|
限制多个cpunum。
|
|
top查看cpu状态
|
|
设置CPU权重
当 CPU 资源充足时,设置 CPU 的权重是没有意义的。只有在容器争用 CPU 资源的情况下, CPU 的权重才能让不同的容器分到不同的 CPU 用量。–cpu-shares 选项用来设置 CPU 权重,它的默认值为 1024。我们可以把它设置为 2 表示很低的权重,但是设置为 0 表示使用默认值 1024。
|
|
当只有test-1使用cpu资源时的CPU负载
|
|
当test-1与test-2争用资源时的CPU负载
|
|
两个容器分享一个 CPU,所以总量应该是 100%。具体每个容器分得的负载则取决于 –cpu-shares 选项的设置!我们的设置分别是 512 和 1024,则它们分得的比例为 1:2。在本例中如果想让两个容器各占 50%,只要把 –cpu-shares 选项设为相同的值就可以了。
对容器资源的限制 /sys/fs/cgroup/
|
|