본문 바로가기
반응형

Docker27

Docker Swarm - Update(Rollout) 와 Rollback에 대해 Docker Swarm 명령을 이용하다 보면, 익숙하지 않은 명령어 3개를 확인 할 수 있다. 이 명령은 Docker Swarm 에서만 사용이 가능한 명령으로 서비스를 효과적으로 관리하는데 목적을 두고 있다. 그럼 Update(Rollout) 와 Rollback에 대해 공부를 진행하기 위해 서비스를 만들어 보자. Swarm Init Swarm 모드를 사용하기 위해서 가장 먼저 해야 하는 작업으로, Swarm 서버를 구성하는 것이다. Swarm 모드는 다중 물리적인 호스트를 연결하여 Resource를 관리할 수 있는 기능을 제공한다. Swarm 활성화는 다음 명령으로 진행할 수 있다. docker swarm init # 만약 사설 ip가 다중으로 가지고 있는 경우 --advertise-add 으로, 하나를.. 2023. 7. 24.
Docker - 기본 배포 시나리오 Docker를 이용한 기본 배포 시나리오는 다음과 같이 4단계로 이루어진다. 이미지 다운로드 -> 컨테이너 실행 -> 포트 매핑(선택, 네트워크 연결) 로 진행된다. Docker의 모든 이미지는 이름과 태그(Tag)를 가지고 있고 이를 이용해서 이미지를 다운로드하게된다. 이미지 다운로드 이미지 다운로드는 기본적으로 docker login을 통해 로그인한 Docker Repo와 연결되고, 해당 저장소에서 이미지를 찾게 된다. docker image python:3.10-slim 그리고 이미지는 : 이후로 태그를 갖는데 태그는 아래와 같은 방식으로 사용되는 아래 문서를 참고하자. https://asecurity.dev/entry/Docker-Image-Alpine-Slim-Stretch-Buster-Jess.. 2023. 7. 17.
Docker Compose - 재부팅/오유 자동 재시작 정리 Docker는 시스템 재시작 혹은 오류로인해 실행중인 컨테이너가 멈출경우 이를 어떻게 처리할 지 --restart라는 옵션을 이용해서 정의할 수 있다. --restart를 이용하여 사용할 수 있는 옵션은 다음과 같다. no: 컨테이너가 자동으로 다시 시작되지 않음 on-failure[:max-retries]: 0이 아닌 종료 코드로 종료되는 경우 컨테이너를 다시 시작하고 Docker 데몬이 컨테이너를 다시 시작할 수 있는 최대 시도 횟수를 진행함 always: 컨테이너가 중지되면 항상 다시 시작 unless-stopped: 컨테이너가 임의로 또는 Docker 데몬에 의해 중지되지 않는 한 항상 컨테이너를 다시 시작 시스템에서 사용하기 적절한 옵션은, on-failure이 유용하다. on-failure와 .. 2023. 5. 1.
Splunk - Mac M1 Docker Image 실행 실패 해결 Macbook M1에서 정상적으로 Splunk Docker 이미지를 실행하고자 한다면, 다음과 같은 조치를 진행해야 한다. Docker Desktop 4.15 혹은 4.16 버전이상 부터 제공하는 기능으로, Apple Silicon 을 Docker에서 에뮬레이터를 해주는 기능이다. 위 기능을 활성화 하고 아래와 같이 실행하면 임시 방편이지만, 실행이 가능하다. docker run -it -e SPLUNK_START_ARGS=--accept-license -e SPLUNK_PASSWORD=splunkdev --platform=linux/amd64 -p 8000:8000 splunk/splunk:8.2.9 start 아래와 같이 로그를 살펴보면 정상적으로 실행되는 것을 알 수 있다. 2023. 4. 18.
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 이미.. 2023. 4. 17.
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-ap.. 2023. 2. 21.
Docker - Image Alpine, Slim, Stretch, Buster, Jessie, Bullseye Docker 개발을 진행하다보면, 기본 이미지 선택을 하게 되는데, 각 필요한 프로덕션에 추가로 붙는 이녀석이 무엇인지 너무 궁금하다. Alpine, Slim, Stretch, Buster, Jessie, Bullseye 이를 이해하기 위해서는 먼저 Docker Image의 Tag 방식을 이해하는 것이 좋다. Tag는 : 다음부터 작성된 내용이 Tag로 사용되는데, 앞에 메인이 되는 Python, Node와 같은 개발할 환경을 선택하고 이후 Tag를 통해 버전을 지정하게 된다. 가장 기본이 되는 이름은 다음과 같다. : 그 이후로는 추가적으로 세부적 필요에 따라서 타입을 나누어 구분하게 된다. :--.... Alpine, Slim, Stretch, Buster, Jessie, Bullseye는 이러한 타.. 2023. 2. 14.
Docker - alpine Image에 Pandas, Numpy 설치하기 alpine은 가장 기초적인 커널이 존재하는 버전이다. 사용해야 하는 상황에서 Pandas 를 사용해야 하는 경우 라이브러리로 인해 정상적으로 설치가 되지 않는다. 이유는 alpine이 가벼운 OS를 지향하다보니, Pandas에서 필요로 하는 라이브러리 대부분이 구성이 되어 있지 않아서 발생한다. 오류 내용으로보면, Numpy 설치 관련 라이브러리 오류로 확인된다. 가장 손쉽게 해결할 수 있는 방법으로 python alpine 이미지보다는 slim-buster를 사용하기를 추천한다. FROM python:3.10.4-slim-buster 2023. 2. 14.
Docker - detach/attach(백그라운드/포그라운드) 실행 이거를 정리해야 하나 싶다가도, 필자 역시 처음으로 옵션을 찾아보고 이해하는데 도움이 되고자 여기에 정리해본다. 가장 쉽게 본다면, 아래 표와 같이 정리 할 수 있다. Docker 명령(기본) Docker 옵션 Docker Compose 옵션 백그라운드 실행 (Detached mode) start --detach / -d -d 포그라운드 실행 (Attached mode) run --attach / -a (없음) 도커는 기본적으로 detach와 attach 모드로 사용하는 명령마다 기본 실행모드가 정해진다. 이를 무시하고 정해진 모드로 동작하도록 구성할 있는 옵션이 --detach/--attach 옵션이다. 포그라운드 실행(Attached mode), run 포그라운드 실행은 현재 실행하는 터미널(콘솔)에.. 2023. 1. 3.
반응형