반응형

podman을 사용하면, container 표준기술이기 때문에, docker처럼 docker service daemon에 의존성 없이 container관리가 가능하다는 소식을 듣고, 설치부터 container 실행까지 해보던 중, 이미지를 가져올 수 없다는 에러가 발생하여, 그에 대한 해결책을 정리한다.

 

우선 podman 설치는 ubuntu 기본 repo에서 제공하지 않으므로, 별도의 repo를 등록해야 하고, 14.04 같은 예전버전에서는 repo를 등록해도 패키지를 찾을 수 없어서, 18.04에서 설치를 해서 진행을 했다.

(참고 : podman 설치 : https://computingforgeeks.com/how-to-install-podman-on-ubuntu/)

 

podman이 가장 좋은 게, docker / docker-compose.yml을 거의 그대로 활용이 가능하다.

다만, docker-compose 명령어를 그대로 쓰는 건 아니고, podman-compose라는 모듈을 별도로 설치해야 하는데, 아직 exec / ps 키워드는 개발이 덜 된 듯 하다.

(참고 : podman-compose 설치 : https://github.com/containers/podman-compose)

 

docker-compose.yml을 podman-compose를 이용해서 up을 했는데, 이미지를 땡겨올 수 없다는 에러가 발생했다.

(Error: unable to pull redis: image name provided is a short name and no search registries are defined in the registries config file.)

 

podman이 docker의 키워드를 모두 이용할 수는 있지만, 기본적으로 바라보는 repository가 설정이 되어 있지 않아 발생하는 에러이며, /etc/container 경로에 registries.conf 파일을 생성하여, 아래 내용을 입력해줌으로써, podman이 docker.io repo를 참조할 수 있게끔 설정해주면 된다. 


# This is a system-wide configuration file used to
# keep track of registries for various container backends.
# It adheres to TOML format and does not support recursive
# lists of registries.

# The default location for this configuration file is /etc/containers/registries.conf.

# The only valid categories are: 'registries.search', 'registries.insecure',
# and 'registries.block'.

[registries.search]
registries = ['docker.io']

# If you need to access insecure registries, add the registry's fully-qualified name.
# An insecure registry is one that does not have a valid SSL certificate or only does HTTP.
[registries.insecure]
registries = []


# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
#
# Docker only
[registries.block]
registries = []

 

 

반응형
,