반응형 Linux87 Docker Compose - 오류시 자동 재시작 Docker는 시스템 재시작 혹은 오류로인해 실행중인 컨테이너가 멈출경우 이를 어떻게 처리할 지 --restart라는 옵션을 이용해서 정의할 수 있다. --restart를 이용하여 사용할 수 있는 옵션은 다음과 같다. no: 컨테이너가 자동으로 다시 시작되지 않음 on-failure[:max-retries]: 0이 아닌 종료 코드로 종료되는 경우 컨테이너를 다시 시작하고 Docker 데몬이 컨테이너를 다시 시작할 수 있는 최대 시도 횟수를 진행함 always: 컨테이너가 중지되면 항상 다시 시작 unless-stopped: 컨테이너가 임의로 또는 Docker 데몬에 의해 중지되지 않는 한 항상 컨테이너를 다시 시작 시스템에서 사용하기 적절한 옵션은, on-failure이 유용하다. on-failure와 .. 2024. 2. 29. Github - 파일 히스토리까지 완전 삭제 하기(reset, revert) Github을 사용하다보면 부주의하게 중요한 파일(토큰 정보, 인증 정보)을 실수로 올리는 상황이 발생한다. 이때 서버의 히스토리까지 완전히 삭제해야 하기 때문에 일반적인 삭제 방법으로는 어려울 수 있다. 그래서 여기에서는 파일을 삭제하는 방법에 대해서 얘기해 보도록 하겠다. 상황은 보통 commit만 하고 아직 merge를 하지 않은 상황이나 이미 머지를 완료하였다 하더라도 동일하게 적용이 가능하다. 그럼 먼저 reset, revert 방법이다. 1. 리셋, 되돌리기(reset, revert) reset은 가장 쉬운 방법으로, 원격 레포스토리지에 적용한 commit을 초기화 하는 것이 가능하다. 아래 명령을 이용하면, 현재 가장 마지막에 커밋된 내용을 되돌려 준다. git reset HEAD^ 아래와 .. 2024. 2. 29. Docker - M1 no matching manifest for linux/arm64/v8 in the manifest list entries 에러 no matching manifest for linux/arm64/v8 in the manifest list entries 이 에러는 현재 Docker를 이미지 빌드 혹은 가져오때 플랫폼에 맞는 타입이 없어서 나타난다. 필자는 M1에서 실행하였는데, 실제 M1은 Linux는 아니기 때문에 발생한다. 보통 M1과 같은 일반적이지 않은 클라이언트를 사용시 발생한다. 현재 클라이언트의 종류를 확인하고자 한다면, docker version 명령으로 알 수 있다. 이를 해결하기 위해서는 --platform 옵션을 사용해서 호환이 가능한 플랫폼으로 직접 지정하여 적용하여야 한다. M1의 경우 Linux와 호환이 가능하기 때문에 linux/amd64 혹은 linux로 지정하면 사용이 가능하다. 이는 Docker 이미.. 2024. 2. 29. Logrotate 한시간 단위로 로그 생성하는 방법 Logrotate를 사용하여 한 시간 단위로 로그를 생성하려면 다음과 같은 방법을 사용할 수 있다. /etc/logrotate.conf 파일을 편집한다. 다음과 같은 설정을 추가한다. /var/log/my_log { rotate 1 daily hourly } 위 설정은 /var/log/my_log라는 로그 파일을 매일 한 시간 단위로 생성한다. 또는 다음과 같은 설정을 사용할 수도 있다. /var/log/my_log { rotate 1 daily compress dateext } 위 설정은 /var/log/my_log라는 로그 파일을 매일 한 시간 단위로 생성하고, 압축하며, 파일 이름에 날짜를 추가한다. 잘 동작하는지 Debugging mode를 통해서 확인할 수 있다. sudo logrotate -d.. 2024. 2. 29. Docker - 사용하지 않는 이미지/컨테이너 삭제 Docker를 이용하다보면 순식간에 용량이 바닥을 치는 경우가 많다. 이때 과거 사용하던 이미지를 삭제해야 하는데, 이때 유용한 방법이다. 이미지 확인/삭제 사용하지 않는 이미지를 확인한다. docker images -f dangling=true 위 명령어를 실행하여 사용하지 않는 이미지를 확인한다. dangling=true 옵션은 사용하지 않는 이미지를 표시한다. 이미지를 삭제는 rmi로 아래와 같이 진행할 수 있다. docker rmi [이미지 ID] 이름:태그 기반 삭제 특정 태그 기반으로 삭제를 진행할 수 있는데, ubuntu:latest 이미지를 삭제하려면 다음과 같이 실행할 수 있다. docker rmi -f ubuntu:latest 단, 이미지를 강제로 삭제하면 이미지에 대한 참조가 모두 삭.. 2024. 2. 28. Docker - 파일 읽기/쓰기 구조 이해 오늘 Docker 관련하여 중요한 여러가지를 다시 확인하는 시간을 같았다. 그중 Docker의 파일 저장 구조에 대해 보다 유심히 관심을 가지고 보게되었고 글중에 좋을 글이 있어 가져온다. https://www.freecodecamp.org/news/where-are-docker-images-stored-docker-container-paths-explained/#:~:text=The%20heaviest%20contents%20are%20usually,it%20that%20contains%20your%20changes. 자세한 내용은 위글에서 확인하고, 필자가 위 글을 토대로 정리하면, 얘기대로 현재 Docker의 파일은 OS 별로 아래에 위치한다. 그리고 주요 명령은 다음과 같다. inspect 명령을.. 2024. 2. 28. Docker - Dockerfile 작성하기 기본 with Python Docker를 통한 배포의 유연성은 사용해 본 사람이라면 계속 사용할 수 밖에 없게 만든다. 특히 개발하던 코드를 서버에 배포하고자 할 때 과거 발생하는 서버의 환경 설정 문제와 서버 구성의 간편함을 제공함으로써 보다 안전하고 빠르게 배포를 완료할 수 있다. 가장 처음 Docker를 사용하고자 한다면 Dockerfile을 작성하여야 한다. 여기에서는 Dockerfile을 작성할 때 어떻게 구성할 수 있는지 기본적으로 사용되는 커멘드들에 대해서 알아보도록 하겠다. Dockerfile 작성 Dockerfile을 작성할 때에 다음과 같은 루트로 작성을 진행하는 것을 추천한다. 필요 라이브러리 설치 도커 실행에 필요한 파일 복사 서버 환경 설정 스크립트 실행 크게 위 4가지를 순서적으로 진행하면 대부분의 도커를.. 2024. 2. 28. Linux - Cron 로그 확인 Cron 로그는 기본적으로 Syslog에 포함되어 확인할 수 있다. syslog의 파일 위치는 /var/log/syslog 이며, grep을 이용해서 CRON(대문자)를 통해 실행 기록을 확인할 수 있다. cat /var/log/syslog | grep CRON 위의 첫 로그를 보자면, "Mar 25 00:05:01"은 cron 작업이 실행된 시간을 나타낸다. "secu-dev-web"은 호스트 이름을 나타내고, "1953459"는 cron 작업의 ID이다. "root"는 cron 작업을 실행한 사용자 이름이고, "/usr/sbin/logrotate"는 실행된 명령을 나타낸다. 만약 /var/log/syslog 파일에서 로그를 찾을 수 없거나,별도로 로그를 분리하고자 한다면 다음과 같이 설정해서 가능하다.. 2024. 2. 27. Docker - docker-compose로 다중 컨테이너 관리하기 Docker를 실제 사용하다보면, Database, Web, Memory Cache 등 다중 컨테이너로 사용해야 하는 상황이 종종 발생한다. 이때 만약 기본적인 Docker 명령을 활용한다면, 아래와 같이 여러 단계를 거쳐야 한다. 1. 먼저 함께 사용할 내부 네트워크를 생성하고, 2. 이후 Docker를 Run을 통해 실행할때 마다 네트워크 및 볼륨정보등 각각의 필요한 옵션을 지정해야 줘야 한다. 아래 명령은 myapp이라는 네트워크를 생성하고, Database의 저장을 위해 mariadb-data라는 볼륨용도의 컨테이너를 생성하여 Mysql 5.7버전의 컨테이너를 생성하는 명령이다. sudo docker network create myapp docker run -d --network my-app --.. 2024. 2. 27. 이전 1 2 3 4 5 ··· 10 다음 반응형