docker 환경에서 podman 환경으로 마이그레이션 후 운영 과정에서 발생한 에러 및 트러블 슈팅을 다룬다.
마이그레이션 과정을 다룬 포스트는 아래에서 확인 가능하다.
[podman] docker에서 podman으로 마이그레이션하기
문제
mariadb 컨테이너를 podman으로 구동하던 중 다음 에러와 함께 임의로 종료(shutdown)되는 현상 발생
컨테이너 로그: mariadbd (initiated by: unknown): Normal shutdown
컨테이너가 종료된 이유도 없고 'initiated by: unknown' 로그라서 종료한 주체도 식별이 되지 않는다.
docker-compose.yml 파일로 구성한 이미지이며, restart: always 옵션을 부여해도 동일한 현상이 계속 발생
그러던 중 docker-compose logs 로 확인했을 때, 다음의 에러 로그 확인
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 33, in <module>
sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 81, in main
command_func()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 200, in perform_command
project = project_from_options('.', options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 60, in project_from_options
return get_project(
^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 152, in get_project
client = get_client(
^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/compose/cli/docker_client.py", line 41, in get_client
client = docker_client(
^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/compose/cli/docker_client.py", line 170, in docker_client
client = APIClient(use_ssh_client=not use_paramiko_ssh, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 197, in __init__
self._version = self._retrieve_server_version()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 221, in _retrieve_server_version
raise DockerException(
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
해결
환경변수 DOCKER_HOST에 podman 소켓의 주소를 등록한다.
sudo systemctl enable --now podman.socket
export DOCKER_HOST=unix:///run/podman/podman.sock
이와 같이 설정한 다음 컨테이너를 다시 생성하고 시작하면 된다.
이유
docker에서 podman으로 마이그레이션 하기 위해서 DOCKER_HOST 환경변수를 이용하는 방법이라고 한다.
데몬 기반으로 동작하는 도커와 데몬없이 동작하는 podman의 동작구성 차이에서 발생하는 이슈로 정리한다.
출처:https://podman-desktop.io/docs/migrating-from-docker/using-the-docker_host-environment-variable
podman이 운영의 편리가 아닌 트러블슈팅만 늘어난 기분
'OSX Tips > Trouble Shooting' 카테고리의 다른 글
[podman] Error: OCI runtime error: crun: sd-bus call 에러 해결 (1) | 2024.09.28 |
---|---|
bits/libc-header-start.h: No such file or directory 해결 (0) | 2023.01.31 |
[pi] Read-only file system 오류 해결 (0) | 2021.07.12 |
[Kali] metasploit Could not locate gemfile 해결 (0) | 2021.03.10 |
[Big Sur] homebrew-core is a shallow clone 에러 해결 (0) | 2020.12.31 |