2022. 1. 17. 00:17ㆍDevOps/Docker & kubernetes
이전시간에 이어 도커에 대한 기본적인 개념을 조금 더 자세히 알아보도록 하겠다.
Entrypoint(엔트리 포인트)
생략을 할 수 있으며 생략될 경우 지정된 커멘드의 명령어로 수행할 수 있다.
이 지점을 지정하게 되면 도커 컨테이너가 실행할 때 고정적으로 실행되는 스크립트 혹은 명령어를 지정할 수 있게 된다.
command(커멘드)
단독적으로 실행할 때는 컨테이너가 실행될 명령어가 되며 그렇지 않을 경우 엔트리포인트에 지정된 명령에 대한 인자값이 된다.
도커 명령어에서도 전달할 수 있는데 이미지에 지정된 엔트리포인트와 커멘드를 오버라이드 할 수 있다. 기본적으로 우분투 이미지를 실행할 때는 bash, sh, echo 명령어 등으로 실행할 수 있다.
docker run --entrypoint sh ubuntu:focal
==> sh 커멘드로 실행
docker run --entrypoint echo ubuntu:focal
==> echo 명령어로 실행
도커 컨테이너를 실행할때에는 필요한 변수, 파일과 같은 자료를 주입할 수 있어야하는데, 이때 대표적인 방법으로 환경변수를 통해 전달하는 방법이 있다. 기본적으로 2가지 방법이 있는데 아래와 같다.
먼저 env를 통해 접근하는법을 알아보자. 아래의 명령어를 입력하면 다음과 같은 결과가 나타날 것이다.
docker run -i -t -e MY_HOST=chicode.com ubuntu:focal bash
==> 호스트는 chikichiki.com이며 우분투이미지를 실행할 것이며 bash로 접근할 것이다.
echo 명령어를 통해 확인해본 결과 잘 출력되는것을 볼 수 있다.
또한 env를 통해 확인해 본 결과 host가 잘 잡혀 있는것을 확인할 수 있다.
이제 env-file을 통해 접근하는 방법을 알아보도록 하자. 먼저 예시로 sample.env 파일은 만들었다.
파일은 만드는 방법은 cat > sample.env 로 만들면 된다. 이 후 실행해 보면 잘 저장되어 있는 것을 확인할 수 있다.
마지막으로 컨테이너 실행 관련 명령어이다.
docker exec [container] [command]
==>실행중인 컨테이너에 명령어를 실행하는 도커 명령어이다.
기존 컨테이너의 특정 이슈 해결을 위해 사용한다.
docker exec -i -t my-nginx bash
==> my-nginx 컨테이너에 bash 쉘로 접속하기.
docker exec my-nginx env
==> my-nginx컨테이너에 환경변수 확인하는 방법이다.
컨테이너에 환경변수를 주입하는 방법을 알아보았는데 아래의 도커 허브 홈페이지에 보면 수많은 환경변수들이 있다. 확인해 보면 좋을듯 한다.
https://hub.docker.com/_/nginx
'DevOps > Docker & kubernetes' 카테고리의 다른 글
Docker Volume 다루기 (0) | 2022.01.24 |
---|---|
Docker Network 구조 (0) | 2022.01.18 |
Docker 기본 개념 part.1 (container의 life cycle) (0) | 2022.01.16 |
Docker images와 Container (0) | 2022.01.16 |
Ubuntu 에서 Docker설치하기 (0) | 2022.01.16 |