히비스서커스의 블로그

[Docker] 마운트 지점 변경 후 도커 에러 본문

Programming/Docker

[Docker] 마운트 지점 변경 후 도커 에러

HibisCircus 2022. 7. 4. 18:45
728x90

 

마운트 지점을 변경한 후 도커 컨테이너를 띄우려고 하니 다음과 같은 에러가 발생하였다. 

 

docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:385: applying cgroup configuration for process caused: no cgroup mount found in mountinfo: unknown.

 

mount 정보에서 cgroup mount를 찾을 수 없다는 말인 듯 하다.

 

첫번째 해결방안은 돔돔이님 블로그를 참조하여 해결하였다. cgroup을 mount 해주면 해결이 된다.

 

https://domdom.tistory.com/entry/%EC%98%A4%EB%A5%98%ED%95%B4%EA%B2%B0-cgroups-cgroup-mountpoint-does-not-exist-unknown

 

[오류해결] cgroups: cgroup mountpoint does not exist: unknown

cgroups: cgroup mountpoint does not exist: unknown 혹시 위와 같은 오류를 보신적이 있으신가요?? 또는 docker(도커)에서 build를 할 때 아래와 같이 오류가 난 적이 있으신가요?? └─# docker build --tag w..

domdom.tistory.com

 

해결방법 

 

$ sudo mkdir /sys/fs/cgroup/systemd

$ sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd

 

하지만 다음과 같은 에러를 마주하였다. 

 

docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:385: applying cgroup configuration for process caused: mountpoint for devices not found: unknown.

 

이번에는 마운트 포인트를 찾을 수 없단다.

 

두번째 해결방안은 yoonlives님의 Peaceful Lake 블로그를 참조하여 해결하였다. 다음과 같은 sh 파일을 만든 후 실행시켜주면 된다.

 

https://learder.tistory.com/827433

 

ts: mountpoint for devices not found

에러? docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"mount..

learder.tistory.com

 

#!/bin/sh# Copyright 2011 Canonical, Inc
# 2014 Tianon Gravi
# Author: Serge Hallyn <serge.hallyn@canonical.com>
# Tianon Gravi <tianon@debian.org>
set -e

# for simplicity this script provides no flexibility

# if cgroup is mounted by fstab, don't run
# don't get too smart - bail on any uncommented entry with 'cgroup' in it
if grep -v '^#' /etc/fstab | grep -q cgroup; then
  echo 'cgroups mounted from fstab, not mounting /sys/fs/cgroup'
  exit 0
fi

# kernel provides cgroups?
if [ ! -e /proc/cgroups ]; then
    exit 0
fi

# if we don't even have the directory we need, something else must be wrong
if [ ! -d /sys/fs/cgroup ]; then
    exit 0
fi

# mount /sys/fs/cgroup if not already done
if ! mountpoint -q /sys/fs/cgroup; then
  mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
fi

cd /sys/fs/cgroup

# get/mount list of enabled cgroup controllers
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
  mkdir -p $sys
  if ! mountpoint -q $sys; then
    if ! mount -n -t cgroup -o $sys cgroup $sys; then
      rmdir $sys || true
    fi
  fi
done

# example /proc/cgroups:
# #subsys_name hierarchy num_cgroups enabled
# cpuset 2 3 1
# cpu  3 3 1
# cpuacct  4 3 1
# memory 5 3 0
# devices  6 3 1
# freezer  7 3 1
# blkio  8 3 1

exit 0

 

복붙이 한줄로 될까봐 파일첨부!

cgroup.sh
0.00MB

 

도움이 되셨길 바랍니다!

728x90