docker run指令集
Posted 亮眼的昵称
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker run指令集相关的知识,希望对你有一定的参考价值。
常用指令
指令 | 说明 |
---|---|
-a stdin | 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项 |
-d | 后台运行容器,并返回容器ID |
-i | 以交互模式运行容器,通常与 -t 同时使用 |
-P | 随机端口映射,容器内部端口随机映射到主机的端口 |
-p | 指定端口映射,格式为:主机(宿主)端口:容器端口 |
-t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用 |
--name="nginx-lb" | 为容器指定一个名称 |
--dns 8.8.8.8 | 指定容器使用的DNS服务器,默认和宿主一致 |
--dns-search example.com | 指定容器DNS搜索域名,默认和宿主一致 |
-h "mars" | 指定容器的hostname |
-e username="ritchie" | 设置环境变量 |
--env-file=[] | 从指定文件读入环境变量 |
--cpuset="0-2" or --cpuset="0,1,2" | 绑定容器到指定CPU运行 |
-m | 设置容器使用内存最大值 |
--net="bridge" | 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型 |
--link=[] | 添加链接到另一个容器 |
--expose=[] | 开放一个端口或一组端口 |
--volume , -v | 绑定一个卷 |
特殊指令
权限相关
--privileged
: 对容器中root用户进行提权,使其拥有对宿主机的root操作权限
--net=host
: 容器与宿主机共用网卡
--pid=host
: 使容器能够看到宿主机上的进程
--ipc=host
: 这个是允许我们设置一些kernel的参数,例如:docker run –sysctl net.ipv4.ip_forward=1 test:2.3
内存限额
-m
--memory
:设置内存限额,如500M
--memory-swap
: 设置swap和内存的使用限制,即该限制为内存加交换的大小,使用-1,代表不限制
--memory-reservation
:内存软限制
cpu限额
指令 | 说明 |
---|---|
--cpus num | 限制CPU数量 |
--cpuset-cpus | 允许容器占用那核CPU,例如:--cpuset-cpus 0,3 --cpuset-cpus 0-4 |
cpuset-mems | MEMs in which to allow execution (0-3, 0,1),只应用于 NUMA 架构的 CPU 生效 |
--cpu-period int | 指定容器对CPU的使用要在多长时间内做一次重新分配 |
--cpu-quota int | 指定在这个周期内,最多可以有多少时间用来跑这个容器,最小值为1000微秒,最大值为1秒,默认为-1,表示不做控制,--cpu-quota 与--cpu-period 一般配合使用,例如:容器进程需要每1秒使用单个CPU的0.2秒时间,可以将cpu-period设置为1000000(即1秒),cpu-quota 设置为 200000(0.2 秒)。当然,在多核情况下,如果允许容器进程完全占用两个CPU,则可以将cpu-period设置为100000(即0.1秒),cpu-quota设置为200000(0.2秒)。 |
--cpu-rt-period | 限制CPU实时时间(以微秒为单位) |
--cpu-rt-runtime | 限制CPU实时运行时间(以微秒为单位) |
CPU内核绑定
通过下面指令可以看到容器中进程与 CPU 内核的绑定关系,达到绑定 CPU 内核的目的
docker exec 容器ID taskset -c -p 1
参考:https://www.runoob.com/docker/docker-run-command.html
https://www.cnblogs.com/xuhao0705/p/14073525.html
以上是关于docker run指令集的主要内容,如果未能解决你的问题,请参考以下文章
docker容器启动时执行脚本 run /bin/bash执行多条指令