docker entrypoint.sh 파일의 exec $@
2023. 5. 28. 21:19
DevOps/Docker
dockerfile 에서 entrypoint.sh 파일을 작성하면서 exec $@ 명령어를 사용하는 것을 보고 궁금해서 찾아봤다. 내가 작성한 dockerfile 은 이렇게 작성되어있다. (...) # /etc/hadoop/*.xml 설정파일 변경 ADD entrypoint.sh /opt/hadoop/entrypoint.sh RUN chmod 755 /opt/hadoop/entrypoint.sh ENTRYPOINT ["/opt/hadoop/entrypoint.sh"] 마지막에 컨테이너를 실행 후에 entrypoint 를 실행하게 된다. 하지만 entrypoint 를 실행하고나서 컨테이너가 바로 종료된다. 그래서 찾아보다가 entrypoint.sh 파일의 마지막에 exec $@ 명령어를 넣어주는 것을 보았..
docker-compose 실행과 동시에 종료 (docker-compose exited with code 0)
2023. 5. 28. 17:55
DevOps/Docker
docker-compose 문제 docker-compose 를 통해 컨테이너를 동시에 실행시키려고 하니 다음과 같은 에러가 발생했다. 실행과 동시에 바로 종료가 되어 버린다... 그래서 원인을 찾아보니 docker container 는 하나의 명령어를 실행한다고 한다. 명령어의 수행이 끝나면 당연히 컨테이너가 종료된다. 에러를 보았듯이 정상 종료가 되어 버린다. 이러한 이유에서 명령어를 주지 않거나 단순히 하나의 명령어만 실행할 경우 명령어만 실행하고 곧바로 종료가 되어버린다. 때문에 계속해서 실행될 수 있도록 명령이 끝나지 않도록 하거나 명령이 끝나도 종료되지 않게 해주어야 한다. 해결 방법 다음과 같이 docker-compose.yaml 파일에 다음과 같이 옵션을 추가해주면 된다고 한다. stdin_..
Docker dangling image 삭제하기
2023. 3. 29. 17:09
DevOps/Docker
도커에서 동일한 태그를 가진 이미지를 빌드할 경우 기존에 있던 이미지는 삭제되지 않고 tag 가 으로 변경된 상태로 남아있게 된다. 아래의 사진을 보면 mysql 5.7 버전을 다시 빌드했을 때 기존에 있던 이미지의 태그가 으로 변경된 것을 확인할 수 있다. 이렇게 더 이상 컨테이너에 연결되지 않고 태그가 없어진 이미지를 Dangling image 라고 한다. 이러한 dangling 이미지를 그대로 방치하게 되면 파일 시스템의 용량을 차지하게 되고 이미지를 확인하는데 불편함이 생길 수 있다. 따라서, dangling 이미지를 조회하고 삭제하려고 한다. dangling image 는 다음과 같이 조회할 수 있다. -f 옵션 은 필터를 지정하는 옵션이다. 따라서 필터를 통해 dangling 의 값이 true..
Docker Mysql 5.7 설치하기
2023. 3. 8. 12:27
DevOps/Docker
Docker 에서 mysql 을 설치하는 과정을 정리해봤다. 먼저 도커 에서 mysql 이미지를 확인해본다. docker search mysql 사진과 같이 mysql 의 이미지를 확인할 수 있다. 나는 mysql 5.7 버전을 사용할 예정이라 mysql 5.7 버전의 이미지를 가져왔다.(pull) 버전은 해당 이미지의 태그를 나타내는 콜론(:) 을 사용해 버전을 입력할 수 있다. docker pull mysql:5.7 그리고 설치된 이미지를 확인할 수 있다. 이제 mysql 이미지를 통해 도커 컨테이너를 실행해보자. 아래와 같이 실행할 경우 컨테이너 실행이 제대로 되지 않았다. docker run -d --name mysql-5.7 -p 3306:3306 mysql:5.7 그래서 로그를 확인해보니 다음..
What is Docker
2023. 2. 3. 17:33
DevOps/Docker
도커에 대해서 이해한 내용을 적어보려고 한다. 솔직히 도커는 이렇다! 라고 잘 설명하기가 쉽지 않은 것 같다. 뭔가 알 것 같은데 잘 모르겠는 느낌? 그냥 도커는 컨테이너를 기반으로 하는 오픈 소스 플랫폼이고 이미지를 생성해 컨테이너를 실행한다. 그리고 컨테이너에 원하는 애플리케이션을 실행할 수 있다. 정도로만 이해하고 있는 것 같다. 하지만 누군가에게 설명할 때 도커는 이렇다라고 설명하기가 어려운 건 왜일까? 라는 생각에 다시 한번 정리해보는 시간을 가졌다. Docker 도커가 무엇인지 여러 블로그와 사이트들을 찾아보았다. 찾아본 결과 도커에 대한 정의는 다음과 같았다. 애플리케이션을 신속하게 구축하고 테스트하고 배포할 수 있는 소프트웨어 "플랫폼" 가상 머신처럼 독립된 실행환경을 만들어주는 "도구" ..
k3d 를 통해 쿠버네티스 클러스터 만들어보기 (MacOS)
2022. 11. 26. 20:53
DevOps/kubernetes
지난 번에 minikube 로도 들어봤고, vagrant 를 통해서도 만들어보았다. 이번에는 로컬 환경에서 k3d 를 사용해서 쿠버네티스 클러스터를 만들어보려고 한다. k3d 는 아래의 사이트에서 확인해볼 수 있다. https://k3d.io/v5.3.0/ k3d Overview What is k3d? k3d is a lightweight wrapper to run k3s (Rancher Lab’s minimal Kubernetes distribution) in docker. k3d makes it very easy to create single- and multi-node k3s clusters in docker, e.g. for local development on Kubernetes. Note: k..
Error response from daemon: Bad response from Docker engine
2022. 11. 25. 20:34
DevOps/Docker
minikube 로 실행중인 클러스터가 정상적으로 동작하지 않았다. 이 문제는 minikube 를 사용해서 docker desktop 으로 컨테이너를 사용하고 있었는데 도커 컨테이너 문제로 도커를 재시작해주니까 다시 정상적으로 돌아왔다. 그리고 다시 minikube 클러스터를 시작해주었다. 그러니까 정상적으로 실행이 되었다...
minikube dashboard "SVC_URL_TIMEOUT" Error
2022. 11. 22. 19:20
DevOps/kubernetes
minikube dashboard 를 실행하려고 하니 다음과 같이 에러가 발생했다. Exiting due to SVC_URL_TIMEOUT: http://127.0.0.1:59070/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ 이 접근 불가능합니다: Temporary Error: unexpected response code: 503 음.. proxy 관련해서 로컬 호스트에서 실행되고 있지 않고 docker 에서 실행되고 있어서 발생하는 문제인 것 같다. proxy 설정이나 네트워크 설정을 한번 찾아봐야 할 것 같다. URL 에 직접 들어가서 확인해보니 다음과 같이 나왔다. 엔드포인트가 없다는 메시지를 확..