docker里的LimitCORE=infinity
时间: 2024-04-15 08:28:44 浏览: 16
在 Docker 中,`LimitCORE=infinity` 是用于控制容器中进程的核心转储限制的设置。将 `LimitCORE` 设置为 `infinity` 表示容器中的进程可以生成无限大小的核心转储文件。
核心转储文件是在程序发生崩溃或异常终止时生成的,用于记录程序崩溃时的内存状态和调试信息。默认情况下,Docker 容器中的进程是没有权限生成核心转储文件的。通过将 `LimitCORE` 设置为 `infinity`,可以允许容器中的进程生成任意大小的核心转储文件。
在 Docker Compose 文件或 Docker 命令中,可以使用以下方式设置 `LimitCORE` 为 `infinity`:
```yaml
ulimits:
core:
hard: infinity
soft: infinity
```
或者在 Docker 命令中使用 `--ulimit` 参数:
```bash
docker run --ulimit core=-1 ...
```
请注意,设置 `LimitCORE=infinity` 可能会导致核心转储文件无限增长,占用大量磁盘空间。因此,在生产环境中使用时需要谨慎考虑,并根据实际需求进行设置。
相关问题
cat > ${SYSTEMDDIR}/${SERVICEFILE} << \EOF [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s
这是一个在 Linux 系统中使用的命令,它的作用是将一些文本内容写入到指定的文件中。具体来说,它会将一些配置信息写入到 ${SYSTEMDDIR}/${SERVICEFILE} 这个文件中。这些配置信息包括了 Docker 应用容器引擎的一些描述、文档链接、启动顺序等等。其中,Type=notify 表示该服务类型为通知类型。
设置docker自启动
可以使用systemd将docker设置为自启动服务。可以按照以下步骤操作:
1.创建一个docker.service文件,该文件包含了docker应该运行的命令以及其他必要的信息。该文件路径为:
/etc/systemd/system/docker.service
2.将以下内容复制到docker.service文件中:
```
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
3.保存并关闭docker.service文件。
4.运行以下命令启动docker并将其设置为自启动:
```
sudo systemctl daemon-reload
sudo systemctl enable docker.service
sudo systemctl start docker.service
```
现在docker已经设置为自启动服务,并且会在服务器启动时自动启动。