DevOps
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 네트워크
도커 네트워크 구조 Docker 컨테이너(container)는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와의 통신이 불가능합니다. 하지만 여러 개의 컨테이너를 하나의 Docker네트워크에 연결시키면 서로 통신이 가능해집니다. 네트워크 조회 Docker네트워크의 기본은 내 컴퓨터에서 어떤 네트워크가 생성되어 있는지를 아는 것일 겁니다. docker network ls 커맨드를 사용하면 현재 생성되어 있는 Docker네트워크 목록을 조회할 수 있습니다. bridge, host, none은 Docker의 데몬(daemon)이 실행되면서 디폴트로 생성되는 네트워크 입니다. 대부분의 경우에는 이러한 디폴트 네트워크를 이용하는 것 보다는 사용자가 직접 네트워크를 생성해서 사용하는 것이 권장됩니다. 네..
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 명령어 실행
docker exec 이는 실행중인 컨테이너에 명령어를 실행하는 것입니다. 이는 그래서 컨테이너에서 특정 이슈가 발생했을 떄, 빈번하게 사용합니다. 그리고 이이를 실행하기 위해서는 nginx컨테이너 안에 bash쉘이나 sh쉘이 존재해야 그 안으로 들어갈 수 있게 됩니다. 이렇게 정상 작동하는 것을 확인할 수 있습니다. 이렇게 하게되면 nginx config파일들을 상세히 볼 수 있어서 오류에 대처를 유연하게 할 수 있게 됩니다.
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 환경변수
환경변수 docker container안에서 민감한 정보를 주입하기 위해서, -e, --env로 환경변수를 주입할 수 있는데, 위와 같이 -e MY_HOST=fastcampus.com이 컨테이너 bash쉘 안에서 잘 확인되는 것을 볼 수 있습니다. 이제 해당 컨테이너를 insepct해 보면 Env안에 우리가 주입한 정보가 있는 것을 확인할 수 있습니다. 이 외에도 환경변수를 파일로 주입해 줄 수 있습니다. sample.env라는 파일을 만들고 --env-file에 상대 경로를 주입해 주었고 env로 확인을 해 보니 잘 주입되어 있는 것을 확인해 볼 수 있습니다. https://hub.docker.com/_/nginx nginx - Official Image | Docker Hub Quick referen..
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 엔트리포인트와 커맨드
엔트리포인트와 커맨드 엔트리 포인트와 커맨드는 다릅니다. 엔트리포인트를 설정하게되면, 도커 컨테이너가 실행할 때 고정적으로 실행되는 스크립트 혹은 명령어를 지정할 수 있고, 생략하면 커맨드에 지정된 명령어로 수행하게 됩니다. 그냥 [Entrypoint] [Command]와 같이 Entrypoint가 Prefix로 들어간다고 보시면 됩니다. 다음과 같이 Dockerfile을 구성해서 이미지를 빌드할텐데, 다음과 같이 CMD에 해당하는 명령어가 샐행되기 전에 실행되어야 하는 쉘 스크립트를 지정해 줄 수 있습니다. 기본적으로 ubuntu:focal을 실행하면 bash쉘로 동작하는데 --entrypoint로 sh를 주게 되면, sh로 컨테이너를 실행하게 됩니다. 다음과 같이 sh쉘로 잘 들어가짐을 확인할 수 ..