[파이썬] 도커 레지스트리 설정 및 운영

도커(Docker)는 컨테이너화된 애플리케이션을 관리하기 위한 플랫폼으로 많은 혜택을 제공합니다. 도커 레지스트리는 이러한 도커 이미지를 저장하고 공유하기 위한 중앙 저장소입니다. 이 블로그 포스트에서는 파이썬을 사용하여 도커 레지스트리를 설정하고 운영하는 방법에 대해 알아보겠습니다.

도커 레지스트리 설정하기

도커 레지스트리를 설정하기 위해서는 파이썬에서 docker 라이브러리를 사용해야 합니다. 먼저, docker-py 패키지를 설치해주세요. 아래의 명령을 사용하면 간단히 설치할 수 있습니다.

pip install docker

이제 다음의 코드를 사용하여 도커 레지스트리를 설정할 수 있습니다.

import docker

client = docker.DockerClient()

# 레지스트리 생성하는 함수
def create_registry():
    registry_port = 5000
    client.containers.run('registry', detach=True, ports={'5000/tcp': registry_port})

    return f"도커 레지스트리가 http://localhost:{registry_port} 에서 실행 중입니다."

print(create_registry())

위 코드에서 create_registry 함수를 호출하면 도커 레지스트리가 실행됩니다. 이제 http://localhost:5000 으로 접속하면 도커 레지스트리 페이지를 확인할 수 있습니다.

도커 이미지를 레지스트리에 푸시하기

이제 도커 이미지를 생성하고 레지스트리에 푸시해보도록 하겠습니다. 아래의 코드를 사용하여 도커 이미지를 빌드하고 레지스트리에 푸시할 수 있습니다.

import docker

client = docker.DockerClient()

# 도커 이미지 빌드 및 레지스트리에 푸시하는 함수
def build_and_push_image(image_name, registry_url):
    dockerfile_path = "./Dockerfile"
    tag = f"{registry_url}/{image_name}"

    image, _ = client.images.build(path=".", dockerfile=dockerfile_path, tag=image_name)
    image.tag(repository=tag, tag="latest")
    client.images.push(repository=tag)

    return f"{image_name} 이미지를 성공적으로 레지스트리에 푸시하였습니다."

# 테스트용 이미지를 빌드하고 레지스트리에 푸시
print(build_and_push_image("test-image", "localhost:5000"))

위 코드에서 build_and_push_image 함수를 호출하면 현재 디렉토리에 있는 Dockerfile을 기반으로 도커 이미지를 빌드하고, 지정된 레지스트리에 푸시합니다.

도커 이미지를 레지스트리에서 풀하기

이제 도커 이미지를 레지스트리에서 풀하는 방법에 대해 알아보겠습니다. 아래의 코드를 사용하여 도커 이미지를 레지스트리에서 풀할 수 있습니다.

import docker

client = docker.DockerClient()

# 도커 이미지를 레지스트리에서 풀하는 함수
def pull_image(image_name, registry_url):
    tag = f"{registry_url}/{image_name}"

    client.images.pull(tag)

    return f"{image_name} 이미지를 성공적으로 레지스트리에서 풀하였습니다."

# 레지스트리에서 풀할 이미지를 지정하여 호출
print(pull_image("test-image", "localhost:5000"))

위 코드에서 pull_image 함수를 호출하면 지정된 레지스트리에서 도커 이미지를 풀합니다.

마무리

이제 파이썬을 사용하여 도커 레지스트리를 설정하고 운영하는 방법에 대해 알아보았습니다. 도커 레지스트리는 도커 이미지를 효율적으로 관리하고 공유하는 데 매우 유용합니다. 파이썬과 도커를 함께 사용하여 개발 및 운영 프로세스를 자동화하고 효율을 극대화할 수 있습니다.

더 많은 도커와 파이썬에 관련된 정보를 알고 싶다면 공식 문서와 다양한 블로그 포스트를 참고해보세요!