DevOps/Docker

3. Docker 이미지 [초보자를 위한 Doker 실습 - 데브옵스(DevOps)]

PHM 2023. 5. 12. 17:23

왜 이미지를 생성해야 하는가?

- 애플리케이션에서 사용하려는 컴포넌트나 서비스를 Docker Hub에서 찾을 수 없기 때문에 혹은 개발 중인 애플리케이션을 도커화해서 배포가 쉽도록 만들고 싶기 때문이다.

 - 수동 설정 시

    ㆍ1. OS - Ubuntu

    ㆍ2. Update apt repo

    ㆍ3. Install dependencies using apt

    ㆍ4. Install Python dependencies using pip 

    ㆍ5. Copy source code to /opt folder

    ㆍ6. Run the web server using "flash" command

 

- Docker는 구축한 계층을 전부 캐시에 저장한다.

전체적인 과정 요약

- Dockerfile 을 만들고 build 후 docker push를 하면 도커허브에서 확인 가능하다.

 

 환경 변수에 접근하는 법

- -e 속성 : 컨테이너 내에 환경변수를 설정할 수 있다.

docker run -e APP_COLOR=blue myApp

- 이미 실행 중인 컨테이너에 설정된 환경변수는 docker inspect를 이용해 확인한다.

 

Docker의 CMD 인수(argument) 및 진입점(ENTRYPOINT)

- docker run ubuntu → docker ps 시 실행중인 컨테이너가 없다. docker ps -a 시 종료된 상태임을 확인할 수 있다.

    ㆍ컨테이너는 운영체제를 호스팅하기 위한 것이 아니다.

    ㆍ컨테이너는 특정 작업을 하기 위한 것으로 웹 서버, 응용 프로그램 서버 또는

        데이터베이스의 인스턴스를 호스팅하거나 단순히 일종의 계산 또는 분석을 수행한다.

    ㆍ작업이 완료되면 컨테이너가 종료된다.

    ㆍ컨테이너는 그 안의 프로세스가 살아있는 동안에만 살아있다.

 - CMD 명령어 : 명령줄 매개변수는 완전히 대체된다.

- 진입점 명령어 : 명령줄 매개변수가 추가

- 런타임 도중 진입점을 수정하고 싶다면?

docker run --entrypoint sleep2.0 ubuntu-sleeper 10

    ㆍ--entrypoint 옵션을 사용하여 재정의