Blog Content

    티스토리 뷰

    [Docker] 1. Docker 컨테이너 배포하기

    https://www.katacoda.com/courses/docker 사이트에서 학습 후 정리한 내용입니다.



    Docker란?

    Docker는 개발자 및 시스템 관리자가 분산 응용프로그램을 작성, 제공 및 실행하는 데 사용할 수 있는 개방형 플랫폼


    Deploying Your First Docker Container


    1. 컨테이너 실행하기

    redis 이미지를 찾으려면 다음 명령어 사용

    docker search redis


    Docker는 기본적으로 foreground에서 명령을 실행한다.

    백그라운드에서 실행하려면 -d옵션을 사용한다.

    docker run -d redis


    2. 실행중인 컨테이너 찾기

    실행중인 모든 컨테이너, 컨테이너를 시작하는데 사용된 이미지 및 가동시간을 나열하기 위해선

    docker ps


    실행중인 컨테이너에 대한 자세한 정보를 보고싶다면

    docker inspect <friendly-name|container-id>


    표준 오류 또는 표준 출력에 기록한 메시지를 표시하려면

    docker logs <friendly-name|container-id>


    3. Redis에 접근하기

    컨테이너는 -p <host-port>:<container-port> 옵션을 사용하여

    시작할 때 포트가 바인딩된다.

    또한, 컨테이너를 시작할 때 이름을 정의하는 것이 유용하다.


    따라서 포트 6379의 redisHostPort라는 이름을 사용하여 Redis를 백그라운드에서 실행시키고자 할 때는 다음과 같은 명령을 사용한다.

    docker run -d --name redisHostPort -p 6379:6379 redis:latest


    4. 여러 Redis 인스턴스를 실행하고, Redist가 실행중인 포트에 따라 애플리케이션을 구성하고 싶을 때

    -p 6379 옵션을 사용하면 Redis를 임의로 사용할 수 있는 포트에 노출할 수 있다.

    docker run -d --name redisDynamic -p 6379 redis:latest


    어떤 포트에 할당되었는지 알기 위해서는

    docker port redisDynamic 6379


    5. 데이터 지속성

    디렉토리 바인딩(volumes)을 위해서는 -v <host-dir>:<container-dir> 옵션을 사용하면 된다.

    디렉토리가 마운트되면 컨테이너의 호스트 디렉토리에 있는 파일에 접근할 수 있으며,

    컨테이너 내부의 디렉토리에 변경/기록된 데이터는 호스트에 저장된다.

    이를 통해 데이터를 손실하지 않고, 컨테이너를 업그레이드하거나 변경할 수 있다.


    컨테이너 내부가 아닌 Docker Host에 저장해야 하는 모든 데이터는

    /opt/docker/data/redis에 저정해야 한다.

    명령은

    docker run -d --name redisMapped -v /opt/docker/data/redis:/data redis


    6. Foreground에서 컨테이너 실행하기

    -d를 사용하지 않으면 컨테이너가 foreground에서 실행된다.

    컨테이너와 상호작용하려는 경우 (예를들어, bash 쉘에 접근하거나) -it 옵션을 포함하면 된다.

    Ubuntu 컨테이너를 시작하고 ps명령을 실행하여 컨테이너에서 실행중인 모든 프로세스를 보려면

    docker run ubuntu ps


    컨테이너 내부의 bash 쉘에 접근하기

    docker run -it ubuntu bash



    Comments