728x90
반응형
- Docker 사용시 발생한 문제 및 해결책들에 대해 공유 하도록 하겠습니다.
ERROR: Failed to Setup IP tables
- 에러: ERROR: Failed to Setup IP tables 에러
Creating network "dblink_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:
- 해결책 : systemctl restart docker.service 수행
$ docker-compose up
Creating network "dblink_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-b50eacddd935 -j RETURN: iptables: No chain/target/match by that name.
(exit status 1))
$ systemctl restart docker.service
$ systemctl status docker.service
* docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since 화 2022-04-12 12:07:44 KST; 7min ago
Docs: https://docs.docker.com
Main PID: 20828 (dockerd)
Tasks: 11
Memory: 83.8M
CGroup: /system.slice/docker.service
`-20828 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data300G/docker-image
Creating network "dblink_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-b50eacddd935 -j RETURN: iptables: No chain/target/match by that name.
(exit status 1))
$ systemctl restart docker.service
$ systemctl status docker.service
* docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since 화 2022-04-12 12:07:44 KST; 7min ago
Docs: https://docs.docker.com
Main PID: 20828 (dockerd)
Tasks: 11
Memory: 83.8M
CGroup: /system.slice/docker.service
`-20828 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data300G/docker-image
[Podman] 실행 에러 해결: "current system boot ID differs from cached boot ID"
- 에러
- 비정상 재부팅으로 인해 Podman의 임시 상태 파일이 꼬일때 종종 아래 에러 발생
$ podman images
Error: current system boot ID differs from cached boot ID; an unhandled reboot has occurred. Please delete directories "/tmp/storage
-run-1017/containers" and "/tmp/storage-run-1017/libpod/tmp" and re-run Podman
- 해결 방법 : 문제가 되는 임시 디렉토리를 삭제
# 에러 메시지에 나온 경로를 강제 삭제합니다.
sudo rm -rf /tmp/storage-run-1017/containers
sudo rm -rf /tmp/storage-run-1017/libpod/tmp
[Podman] podman logs 내용 미출력 현상 (빈 화면 출력 해결 방법)
Podman 환경에서 docker-compose.yml (또는 podman-compose)을 이용해 컨테이너를 정상적 기동 되었으나 , podman logs [컨테이너명] 명령어를 실행해도 아무런 로그가 출력되지 않고 빈 화면만 나오는 현상이 발생 하는경우 아래 내용이 원인 일수 있습니다.
- 원인 파악 (Root Cause)
원인은 바로 journald 로그 드라이버 일수도 있다.
시스템 설정을 확인해 본 결과, Podman의 컨테이너 로그 드라이버가 기본값인 journald로 설정되어 있었습니다.
podman inspect myweb --format '{{.HostConfig.LogConfig.Type}}'
journald
- journald 드라이버를 사용하면 컨테이너의 표준 출력(stdout) 로그가 리눅스 시스템의 systemd-journald 데몬으로 전달 된다.
- 이때 Root 권한이 아닌 일반 사용자(Non-root User) 권한으로 podman logs를 실행할 경우, 시스템 로그를 읽어올 권한이 부족하여 출력이 안 되거나 빈 화면만 반환 되게 된다.
- 해결 방법 : YML 파일에 logging 정보 추가
# 수정 전
client:
# ... 생략 ...
restart: "no"
environment:
- TEST_ENV=1
# ========================================== #
# 수정 후 (logging 추가)
client:
# ... 생략 ...
restart: "no"
logging:
driver: k8s-file # 파일 기반 로그 드라이버 강제 지정
environment:
- TEST_ENV=1
[Podman]빌드시 no space left on device 에러 발생
- write /var/tmp/buildah816211196/layer: no space left on device
- 원인 :
- Podman(내부적으로 Buildah 사용)이 이미지를 빌드할 때 임시 파일을 생성 한다. 현재 서버의 /var/tmp 파티션 용량이 꽉 차서 빌드 도중 정상적으로 이미지를 빌드 하지 못하고 종료 하는에러 이다.
- 해결 :
- 방안1 : /var/tmp/ 디렉 토리 를 삭제하고 용량을 확보하는 방법
- 방안2 : 넉넉한 공간으로 tmp 디렉토리를 변경 하는 방법
- export TMPDIR=/mnt/nvme/podman_tmp
- mkdir -p /mnt/nvme/podman_tmp
- 기존 podman 찌거기 데이터 도 같이 삭제 해준다 .
- 원인 :
#Podman 캐시 및 사용하지 않는 찌꺼기 삭제
podman system prune -a --volumes
#비정상 종료한 Buildah 임시 컨테이너 강제 삭제
buildah rm --all
#/var/tmp 내부의 빌드 찌꺼기 수동 삭제
sudo rm -rf /var/tmp/buildah*728x90
반응형