목록DevOps/Docker (8)
규도자 개발 블로그
Docker container가 localhost를 볼 수 있게 하는 방법 IT산업이 점점 고도화, 전문화되면서 거대해지는 규모에 맞게 MSA architecture의 도입은 이제 고려의 대상이 아닌 필수가 됐다. 그만큼 기존에 개발하던 환경과도 달라져야 하는 부분이 있는데 그 중 하나가 바로 어플리케이션의 컨테이너화이다. 하지만 이 컨테이너가 참조하는 엔드포인트가 public network이 아닌, Docker engine을 실행하고 있는 localhost의 어플리케이션을 참조해야 한다면? 먼저 localhost에서 실행할 간단한 fastAPI의 sample을 만들어보자. from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(..
docker, cronjob 하는 container 만들기 + supervisor, 환경변수 적용하기 일단은 간단한 cronjob을 수행하는 container를 만드는 Dockerfile을 작성해보자. 과정은 내가 자주 사용하는 python을 base image로 진행하겠다. # Dockerfile FROM python:3.9 WORKDIR /home/docker/code RUN apt-get -qq update \ && apt-get -qq install -y --no-install-recommends \ cron \ && apt-get -qq autoremove \ && apt-get -qq clean COPY . /home/docker/code RUN cp /home/docker/code/cronj..
블로그에서 볼 수 있다시피 나는 컨테이너 베이스이미지로 CentOS를 택했다. 하지만 그 과정에서 크고작은 이슈가 있었다. 대표적으로 systemd를 사용할 때 나는 failed to get D-Bus connection: Operation not permitted 에러가 있다. 이에 대한 해결책은 블로그에 올려뒀지만... 이 CentOS를 베이스이미지로 한 컨테이너를 쿠버네티스나 GCP에서 제공하는 컨테이너 전용 인스턴스에서 돌려보려 했는데 잡음이 많았다. 바로 몇 줄 위에 있는 failed to get- 에러가 지속적으로 발생했던 데다가 docker-machine상에서 돌아가는 구조와 실제 프로덕션 환경에서 돌아가는 구조가 달랐기 때문에 내가 아는 방법을 적용하기에도 난항이었고 애초에 이렇게 빌드만 ..
도커(Docker)환경에서 CentOS7에 django - gunicorn - nginx 사용하기 저번에는 CentOS7을 바탕으로 systemctl(systemd)및 httpd를 사용하는 방법을 알아봤었다. 도커(Docker)로 CentOS7 이미지 systemctl 사용하기 - 1 도커(Docker)로 CentOS7 이미지 systemctl 사용하기 - 2 이번에는 파이썬(python) 웹프레임워크인 쟝고, 혹은 장고(Django), 그리고 그와 함께 자주 쓰이는 nginx를 연동하는 방법을 알아보자. 데이터베이스는 장고와 다른 데이터베이스를 연동하는 게시물이나 가이드를 찾아보기 바란다. 나는 개인적으로 데이터베이스를 컨테이너로 관리한다는 것을 굉장히 위험하다고 생각하기 때문에 개발환경이면 모를까 실..
Docker로 CentOS이미지 Systemctl 사용하기, 그 세번째 제목에서 알 수 있다시피 Docker로 CentOS의 systemd기능을 사용하는 방안에 대해서 나는 전에도 글을 두 번이나 남긴 적이 있다. 도커(Docker)로 CentOS 이미지 systemctl 사용하기 - 1 도커(Docker)로 CentOS 이미지 systemctl 사용하기 - 2 그렇게 후련한 마음에 이번에는 Docker를 통해 nginx컨테이너를 구동하려고 깃허브를 기웃기웃거리던 와중에 이 레포를 발견했다.CentOS공식 Github 그리고 예상하다시피 이것도 있다.CentOS에서 공식으로 지원하는 Dockerfiles 그리고 물론 이 안에 CentOS에서 systemd를 이용하기 위한 dockerfile도 존재한다. ..
과연 도커(Docker) 컨테이너를 통해 데이터베이스를 운영하는 게 좋은 방법일까? 개인적으로 만들어보고 싶은 웹 어플리케이션이 있어서 도커를 활용해보려고 했는데 데이터베이스와 관련한 부분에서 뭔가 삐걱대는 느낌이었다. 그도 당연할 것이 도커철학과 데이터베이스의 개념 자체가 정면충돌하기 때문이다. 도커는 이미지를 컨테이너화해서 없애고 만들고 하는 식으로 깔끔하면서도 배포환경과 개발환경을 동일하게 만들기 쉽게 해놨다. 만약 개발 및 배포환경으로 쓸 이미지를 구성하는 도중에 어떠한 설정이나 과정이 꼬여 무엇이 잘못된지도 모를 정도로 컨테이너가 망가져버린다면 그냥 컨테이너를 지우고, 새로이 이미지에서 컨테이너를 생성하면 된다. 그리고 완성하면 push명령어를 통해 도커허브에 올려두거나 아예 코드 자체를 볼륨에..
Docker로 CentOS 이미지 systemctl 사용하기전의 게시글에서는 ubuntu이미지를 다운받아 컨테이너로 만든 후에 apache 웹서버를 만들어보았다. 전의 게시글을 보지 못했다면 한번 봐보는 것도 나쁘지 않지만 이미 컨테이너를 올리고 내리는 것과 로컬포트와 도커포트를 연결하는 데에 익숙하다면 이 게시물만 봐도 무방할 것이다.도커(Docker)로 CentOS 이미지 systemctl 사용하기 - 1 [우분투 이미지로 컨테이너 만들어 웹서버 돌려보기] 전에는 우분투리눅스로 돌려봤으니 이제 이 글의 주제인 CentOS로 웹서버를 돌려보자. CentOS컨테이너를 만들어서 apache웹서버 구동해보기 위 게시물에서 했던 과정과 똑같은 절차를 진행해보자. 일단 Docker Quickstart Termi..
Docker로 CentOS 이미지 systemctl 사용하기 개발, 배포, 테스트 환경을 동일하게 만들어주는 편리한 도구 Docker. 일단 이 게시물은 Docker에 대한 기본적인 요소들을 설명하기보다는 내가 삽질했던 것들을 싹 정리해놨다가 다른 사람들은 나처럼 쌩고생하지 말라는 의미에서 남기는 글이다. Docker에 대한 정보는 아래의 링크에 굉장히 잘 나와있다. 서비큐라 기술블로그Docker가 뭔지도 몰랐을 때 처음으로 Docker가 무엇인지, 어떻게 쓰는 건지 알게 된 블로그이다. Docker를 맨 처음에 접하게 된 건 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서이 책이었다. 굉장히 좋은 책이니 초급 PHP개발자라면 누구라도 봤으면 하는 바람이다. 각설은 이정도로 하고, 이야기의 요지는 ..