Docker 기본 개념 part.2 (Entrypoint, 환경변수, 실행 명령어)

2022. 1. 17. 00:17DevOps/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

 

Nginx - Official Image | Docker Hub

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com

 

'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