标签:内存不足 created 另一个 ddr fonts oom 资源 分配 net
创建容器的常用选项
管理容器的常用命令
1、创建容器的常用选项
指令 | 描述 | 资源限制指令 | 描述 |
-i, --interactive | 交互式 | -m, --memory | 容器可以使用的最大内存量 |
-t, --tty | 分配一个伪终端 | --memory-swap | 允许交换到磁盘的内存量 |
-d, --detach | 运行容器到后台 | --memory-swappiness=<0-100> | 容器使用SWAP分区交换的百分比( 0-100,默认为-1) |
-a, --attach list | 附加到运行的容器 | --memory-reservation | 内存软限制, Docker检测主机容器争用或内存不足时所激活的软 限制,使用此选项,值必须设置低于—memory,以使其优先 |
--dns list | 设置DNS服务器 | --oom-kill-disable | 当宿主机内存不足时,内核会杀死容器中的进程。建议设置了- memory选项再禁用OOM。如果没有设置,主机可能会耗尽内存 |
-e, --env list | 设置环境变量 | --cpus | 限制容器可以使用几个可用的CPU资源 |
--env-file list | 从文件读取环境变量 | --cpuset-cpus | 限制容器可以使用特定的CPU |
-p, --publish list | 发布容器端口到主机(宿主机和容器的端口映射) | --cpu-shares | 此值设置为大于或小于默认1024值,以增加或减少容器的权重, 并使其可以访问主机CPU周期的更大或更小比例 |
-P, --publish-all | 发布容器所有EXPOSE的端口到宿主机随机端口 | ||
-h, --hostname string | 设置容器主机名 | ||
--ip string | 指定容器IP,只能用于自定义网络 | ||
--link list | 添加连接到另一个容器 | ||
--network | 连接容器到一个网络 | ||
--mount mount | 挂载宿主机分区到容器 | ||
-v, --volume list | 挂载宿主机目录到容器 | ||
--restart string | 容器退出时重启策略,默认no [always|on-failure] |
||
--add-host list | 添加其他主机到容器中/etc/hosts(容器中hosts文件中添加ip和主机的解析) |
先创建容器
[root@node02 ~]# docker container run -itd --name bs busybox 1ab0200029d705fabaa658ec98c434ea697542ad48bd7cee25d84e0c07375b8e run 创建容器(Run a command in a new container) bs 容器名 busybox 镜像名
1ab0200029d705fabaa658ec98c434ea697542ad48bd7cee25d84e0c07375b8e 容器id
[root@node02 ~]# docker container attach bs #进入一个容器名为bs的容器 / # ifconfig eth0 Link encap:Ethernet HWaddr 02:42:AC:1E:27:02 inet addr:172.30.39.2 Bcast:172.30.39.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:648 (648.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
容器内执行exit 之前:
[root@node02 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ab0200029d7 busybox "sh" 17 minutes ago Up 6 minutes bs
执行exit之后,我们会发现我们运行的进程没了:
[root@node02 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
这样之后我们可以操作启动镜像
[root@node02 ~]# docker container start bs
bs
[root@node02 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1ab0200029d7 busybox "sh" 7 minutes ago Up 6 minutes bs 查看运行容器有哪些
/ # mount /dev/mapper/centos-root on /etc/resolv.conf type xfs (rw,relatime,attr2,inode64,noquota) /dev/mapper/centos-root on /etc/hostname type xfs (rw,relatime,attr2,inode64,noquota) /dev/mapper/centos-root on /etc/hosts type xfs (rw,relatime,attr2,inode64,noquota) 容器内执行mount命令,会有很多文件挂载,我们先看这三个,都会默认从宿主机挂载这三个文件,在容器重启,创建操作(都会重新挂载),我们在容器内修改这三个文件,重启之后都不会生效的(会丢失)。 这里我么也可以通过下面的方式进入容器,这样的话,我们执行exit 的时候他不会让容器停止 [root@node02 ~]# docker exec -it bs sh / # exit
[root@node02 ~]# docker container run -itd -p 8082:80 -h docker-nginx --name nginx8 --restart=always nginx:v1.7.9 603494fada81eca4e6aa5805eca6c3c8846b58fca2f4e836b93f8f24ec05cc19 比如这个就是我们创建一个交互式的容器,镜像使用nginx:v1.7.9,容器名为nginx8,创建后的容器主机名是docker-nginx,做一个端口映射,宿主机的8082映射容器的80端口,同时我们加上--restart=always,容器退出时的重启策略是always
--restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。
--restart的参数说明:
always:无论容器的退出代码是什么,Docker都会自动重启该容器。
on-failure:只有当容器的退出代码为非0值的时候才会自动重启。另外,
该参数还接受一个可选的重启次数参数,`--restart=on-fialure:5`表示当容器退出代码为非0时,Docker会尝试自动重启该容器,最多5次。
创建容器的时候我们应该根据我们的业务场景来进行资源的限制
标签:内存不足 created 另一个 ddr fonts oom 资源 分配 net
原文地址:https://www.cnblogs.com/smail-bao/p/9618353.html