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 도커가 무엇인지 여러 블로그와 사이트들을 찾아보았다. 찾아본 결과 도커에 대한 정의는 다음과 같았다. 애플리케이션을 신속하게 구축하고 테스트하고 배포할 수 있는 소프트웨어 "플랫폼" 가상 머신처럼 독립된 실행환경을 만들어주는 "도구" ..
Error response from daemon: Bad response from Docker engine
2022. 11. 25. 20:34
DevOps/Docker
minikube 로 실행중인 클러스터가 정상적으로 동작하지 않았다. 이 문제는 minikube 를 사용해서 docker desktop 으로 컨테이너를 사용하고 있었는데 도커 컨테이너 문제로 도커를 재시작해주니까 다시 정상적으로 돌아왔다. 그리고 다시 minikube 클러스터를 시작해주었다. 그러니까 정상적으로 실행이 되었다...
Install Docker Engine on CentOS7 (centos7 도커 설치)
2020. 12. 16. 19:28
DevOps/Docker
이번에는 centos 7 리눅스 서버에서 도커를 설치해보고 설치 내용을 정리해두려고 한다. 나는 저장소를 통해 도커 메뉴얼에 따라 도커를 설치하려고 한다. 여러 가지 방법 중 하나인 도커를 자동으로 설치해주는 스크립트를 통해 쉽게 설치할 수 있다. $ curl -fsSL https://get.docker.com | sudo sh Docker는 get.docker.com 및 test.docker.com 에서 빠르고 비대화식으로 설치하기위한 편리한 스크립트를 제공해준다. 하지만 이런 스크립트를 사용하는 것은 프로덕션 환경에는 권장되지 않기 때문에 설치하기 전 설치 환경을 확인해야한다. 도커에서는 스크립트를 통해 설치하기 전 주의 사항을 말해주고 있다. 기본적으로 root 권한으로 실행되기 때문에 root 가..
도커(Docker) centOS 설치 및 실행 & 명령어
2020. 12. 12. 02:43
DevOps/Docker
도커에서 centos 이미지를 가져와 컨테이너에서 실행시켜보려고 한다. 1. centOS 이미지 검색하기 # docker search centos 2. 이미지 가져오기 (image pull) centos 최신 버전의 이미지를 가져온다. # docker pull centos:latest 3. 이미지 목록 확인 # docker images 4. 컨테이너 실행 레퍼지토리 이름을 확인 후 실행시켜준다. # docker run -it --name [컨테이너 이름] [이미지 이름] /bin/bash [옵션] -i : 사용자 입출력 가능 -t : 가상 터미널 환경 조성 컨테이너가 실행되고 컨테이너를 통해 centos 리눅스 서버에 접속한 것을 확인할 수 있다. 5. 컨테이너 종료 exit 를 입력하거나 [Ctrl +..