본문 바로가기

반응형

2018/12

(7)
[docker swarm] worker node를 새로 생성했을 열어줘야하는 포트 1. 기존의 컨테이너간 통신 방법(db와 redis와 연결) docker swarm으로 container를 띄우는 공부를 하고 있다.swarm mode에서는 컨테이너를 replicas 옵션을 줘야 다중으로 띄우는 것이 가능하다.spring boot application을 여러개 띄우고자 할 때 가장 궁금했던 것은 컨테이너간 통신이다. 기존에는 properties.yml의 database url이나 redis url에는 container name을 적어주고 bridge network를 생성해서 rdb, redis와 spring application을 연결해줬었다. 2. swarm mode에서의 컨테이너간 통신 방법(db와 redis와 연결) 그런데 swarm mode에서는 container 이름을 사용자가..
자신의 위치를 받아 들인다는 것, 스스로를 객관화한다는 것 작년에 학원 다닐 떄 유난스럽던 선생이 있었다.자신이 대한민국 최고라는 말을 입에 달고 살면서 하루의 수업 시간 중 적어도 한시간은 다른 반 학생과 선생, 학원, 정부등에 불평불만을 늘어놓았다. 무슨 근거로 대한민국 최고임을 주장하는지 모르겠지만 대한민국 최고가 있을 자리는 아니었다.객관적으로 학생의 시간을 몇시간씩 자신의 불평불만으로 채워놓는 강사는 최고보다는 최악에 가깝다. 나는 이런 행동이 자신의 위치를 받아들이지 못해서 그렇다고 생각한다. 주변의 환경에대해서 불평불만을 늘어놓으면서 자신은 부당하게 이런 처지에 있는 양 합리화를 하는 것이다. 사실 주위에서 꽤 흔하게 발견되는 유형이다.스스로의 처지가 비루하다고 느끼면서 이런 자신을 받아들이는 것은 정말이지 견디기 괴로운 일이다.특히나 나이가 점점 ..
[Jenkins] Jenkins에서 Docker build와 Docker push하기 현재 젠킨스를 git hub와 연동해서 master branch에 push하면 자동으로 빌드하도록 설정했다.빌드는 gradle로 하고 unit test도 함께 진행한다.그리고 빌드의 시작과 끝(성공과 실패 모두)은 slack으로 알람을 받을 수 있다.코드에 대한 build 자동화는 끝난 셈이다.그러나 docker image로 build하고 docker hub에 push하는 작업도 자동화가 필요하다.여기까지만 자동화가 되어도 상당히 편하게 개발을 할 수 있을 것같다. 1. 도커 안에서 도커를 돌리는 방식 소개 젠킨스 이미지에서 docker build와 push를 하기 위해서는 docker image 안에 docker를 설치할 필요가 있다.컨테이너에서 docker를 돌리는 방식을 docker in docke..
[Jenkins] 젠킨스를 도커 컨테이너로 사용할 때 주의할 점 + (어떤 aws instance를 사용할까?) 개인 프로젝트에 빌드 자동화를 하기 위해서 젠킨스를 도입하려고 작업 중이다.생각하고 있는 작업의 흐름은 push(혹은 pull request) -> web hook으로 jenkins에 http 요청 -> 빌드(gradle build) -> 성공시 docker build -> docker push으로 진행된다. 1. 정품 = 좋은 것 = Jenkins Official = 정품 Official이라는 말에 공식 이미지를 pull해서 사용했었다.그런데 처음에 실행하고 필요한 라이브러리를 받을 때 부터 뭔가 이상하다.버전때문에 다운받아지지 않는 라이브러리가 꽤나 많다.Docker Hub repository에 들어가보면 update 날짜가 5달 전이다. 2. simple is best? alpine is best?..
[docker machine] docker machine으로 lightsail instance 제어하기( aka 삽질기) 현재 개인 프로젝트에서 docker container를 aws lightsail에 띄워서 서버 구성을 하고 있다. RDBMS, Redis, application web server(using spring boot), Nginx(Image Storage) 이런식으로 구성되어 있는데.사용하는 컨테이너들이 5개가 되다 보니 변경사항이 생길때 마다 Mobaxterm으로 접속해서 커맨드를 치는게 슬슬 귀찮아졌다.그리고 젠킨스를 이용해서 CI Server를 구축하려고 하는데 Jenkins는 다른 Instance를 띄워서 구성하려고 한다.그러면 내가 관리해야하는 Docker Host가 하나 더 늘어나는 셈이라 관리하기 힘들어 질 것같아서. Docker Host들을 효과적으로 관리할 수 있는 Docker Machine..
[aws lightsail] AWS 라이트세일에 도커 이용해서 운영 서버 구성 최근 디자이너와 클라이언트 개발자 분들과 협업할 수 있는 기회가 두번 있었다.그때마다 heroku라는 PaaS 서비스(aws의 elastic beanstalk와 비슷한 무료 서비스)의 Free Plan을 사용했었다.그런데 헤로쿠의 문제점이 네가지 정도 있었다.1) 서버의 위치가 미국에 있어서 한국에서 사용하면 성능이 느리다. (데모로 보여주면 눈치 보임..) 2) 30분 동안 서버에 네트워크의 요청이 없을 경우 서버가 멈춘다.(이떄 스케줄링으로 20분에 한번정도 요청을 보내주면 해결되기 한다.)3) 무료로 사용할 시 데이터베이스 연동의 어려움(기본으로 제공해주는 RDB의 용량이 5MB였다.)4) 도커를 써먹을 수 없다. 이건 부차적인 문제이긴하지만 공부한 걸 써먹을 수 있어야... 그래서 평소에 좋다고 ..
[docker] 도커 컨테이너 사이의 네트워킹 도커를 이용해 스프링 부트로 구현한 was를 배포해봤다.이제 배포한 백엔드 로직을 도커 컨테이너를 이용해 띄워놓은 MariaDB와 Redis와 상호작용할 수 있도록 서로 연결해야한다.내가 사용할 수 있는 선택지는 세가지 있었다. 1) 도커 컨테이너의 열어놓은 포트와 ip주소를 이용해 연결한다.기존에 이용하고 있던 방법 개발하는 중에는 컨테이너의 열어놓은 포트와 ip주소를 입력해서 개발하였다.application.yml에 datasource url에 192.xx.xxx.xx:3306 이런 식으로 입력해서 db에 접근했었다. 배포 환경에서도 동일하게 적용할 수 있지만 고정된 ip값을 사용한다는 것에서 기각했다. 2)link 옵션을 사용한다.기존에 가장 많이 사용하던 link 옵션이 있다. docker run..

반응형