Developing

패스트캠퍼스 캐시백 챌린지 48일차 본문

Devops/Fastcampus 캐시백 챌린지

패스트캠퍼스 캐시백 챌린지 48일차

DEV_BLOG 2022. 6. 4. 18:15

수강 인증샷

 

엔트리포인트,커맨드 및 환경변수와 docker exec에 관련된 클립들을 수강하는식으로 챌린지를 진행하였다.

기존에 docker exec 명령어로 컨테이너에 접속하는 정도는 알고있었는데 env 내역까지 확인할 수 있다는 것은 처음 알게되었다.docker inspect도 어떤식으로 사용해서 보는지 알 수 있었다. docker hub에 공식 이미지 문서를 보면 환경변수설정에 따라 다르게 동작한다고 하는데 참고하는데에 많은 도움이 될 것 같다. 다음 포스팅으로는 도커 네트워크와 컨테이너 포트와 관련된 내용을 포스팅할 예정이다.

 

 

 

엔트리포인트

  • 도커 컨테이너가 실행할 때 고정적으로 실행되는 스크립트 혹은 명령어
  • 생략할 수 있으며, 생략될 경우 커맨드에 지정된 명령어로 수행

 

커맨드(Command)

  • 도커 컨테이너가 실행할 때 수행할 명령어 혹은 엔트리포인트에 지정된 명령어에 대한 인자 값

⇒ [EntryPoint] [Command]

⇒ 실제 수행되는 컨테이너 명령어

 

Dockerfile의 엔트리포인트와 커맨드

도커이미지를 빌드할때 Dockerfile을 사용하는데, Docker file 구성코드의 예시로 다음과 같이 들 수 있다...

FROM node:12-alpine
RUN apk add --no-cache python3 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["node"]

ENTRYPOINT(선택적): 명령어가 수행되기 앞서서 실행되는 프로그램

CMD(필수적) : 도커이미지가 실행될때 기본적으로 실행될 명령어를 지정한다.

결국 “docker-entrypoint.sh node”가 최종적으로 실행된다고 볼 수 있다.

 

 

ubuntu 이미지를 실행할때 기본적으로 bash로 실행이된다

 

docker inspect 1343

 

 

명령어로 bash, Entrypoint는 null인것을 확인할 수 있다.

 

 

docker run --entrypoint sh ubuntu:focal
docker run --entrypoint echo ubuntu:focal hello world

entrypoint를 sh,echo같이 바꾸어 줄 수 있다.

sh,echo로 COMMAND가 바뀌어있는 것을 확인할 수 있다.

 

docker inspect 6c88

Entrypoint가 echo, CMD로 hello world가 있음을 확인할 수 있다.

 

 

도커 컨테이너 다루기: 환경변수

docker run --help

 

docker run할때 환경변수를 주입하는 방법은 2가지가 있다.

 

 

 

docker run -i -t -e MY_HOST=fastcampus.com ubuntu:focal bash

첫번째로 env list 옵션으로 환경변수를 옮기는 방법은 이러하다.

MY_HOST에 환경변수가 심어져있고, env로 확인하여도 제대로 있다는 것을 확인할 수 있다.

 

마찬가지로 docker inspect로 해당 내용을 확인할 수 있다.

이렇게 환경변수를 env option으로 전달해보았다.

 

 

 

두번째로 환경변수 파일로 전달하는 방법은 다음과 같다.

cat > sample.env

MY_HOST=helloworld.com
MY_VAR=123
MY_VAR2=456

docker run -i -t --env-file ./sample.env ubuntu:focal env

원하는대로 지정이 되었음을 확인할 수 있다.

 

docker exec

  • 실행중인 컨테이너에 명령어를 실행한다
$ docker exec [container] [command]

# my-nginx 컨테이너에 Bash 셸로 접속하기
$ docker exec -i -t my-nginx bash

# my-nginx 컨테이너에 환경변수 확인하기
$ docker exec my-nginx env

docker exec 명령어를 통해 env 내역을 볼수도있고, 이슈발생 해결을 위해 직접 접속하여 관리할 수 있다.

 

 

 

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

* 본 포스팅은 패스트캠퍼스 환급 챌린지를 위해 작성되었습니다.