도커는 신세계
Updated on
우오… 도커를 익히고, DEV환경으로 세팅하는데까지 7일이라는 시간이 소요됬다..
생각보다 엄청나게 시간이 소요됬는데.. 이 도커라는건, 정말 신세계의 물건이다..
텍스트 문서에 설치 방법이나 순서를 적어두고는 했지만, 이 도커가 함께라면 그런건 필요 없다. 그 텍스트 문서화를 도커 이미지를 통해서 쉽게 할 수 있다는 거다..
이 도커는 솔직히 이야기하면, 리눅스 관리자 라던가, 리눅스에 관련된 모든 능력자들을 없애는것 같다..
그냥 쉬운 접근성, 쉬운 설치 모든게 쉽다. 이제는 리눅스 전문가는 사라질 것 같다는 생각이 든다..
물론 이 도커를 통해서 서버의 손실율이 발생하기는 한다. 하지만, 그 손실율 마저도 매꿔버리는 하드웨어가 발전해버리니, 도커를 선택한다는 것이다..
실제로 나는 도커를 처음 사용해 보지만, 다음에 라이젠 3950X가 나오면서, 기존에 사용하던 서버 컴퓨터를 새로 CentOS8 로 구축할 예정인데.
이 CentOS8에서는 리눅스에 아무것도 설치하지 않은 상태에서, (기본적인 것들만) 도커를 설치해서, 모든 것을 도커에서 이용할 예정이다. (Mysql, PostgreSQL, Redis, Mongodb 등)
힘든 Iptables 설정도 할 필요가 없다, 그저 도커 이미지를 작성 해놓고, 그 이미지만 가져가서 컴파일 시킨 후에 사용하면 끝이기 때문이다. 도커 이미지(?)에는 여러가지의 언어들로 만들어진 이미지들이 많기에, 서버 환경에 구애받지 않는다.
그리고, 이 도커라는 시스템이 로드 밸런싱 작업을 해보진 않았지만, 그러한 작업들 또한 손 쉽게 해준다고 한다.. 그러므로, 리눅스 전문가라는게 존재하겠는가…. 수십가지의 이미지는 허브를 통해서 공유되고, 사용법 또한 친절히 설명되어 있고, 언어 또한 특성에 맞춰서 개발되니까..
어쨌든, 처음에 Traefik 서비스를 구축하느라 애먹었다.. 도커 네트워크니 뭐니.. 이해하는데에도 시간이 걸렸고, 도커만의 문법을 이해하는 것도 시간이였다..
Traefik에 postgresql, mongodb, redis 서버를 올렸다. 저장 위치는 당연히, 리눅스에 마운트 시키는 쪽으로해서 데이터를 영구 저장.
볼륨이니, 네트워크니.. 도커만의 세상이 있으니 그것을 이해하기까지 시간이 걸렸고, Traefik 세상 이해하는 것도 시간이 걸렸음..
그렇게, 뒷단을 구축하고, 프론트엔드 (Nuxt.js) 이건 그냥 쉬웠음. node 이미지로 npm install 만 해주면 끝이 났기 때메… (실시간 코드 수정은 nuxt.config.js 에서 wacth 값 수정으로 해결)
하지만, PHP가 문제였다… imgick부터 시작해서, 여러가지 옵션이 있었기에, php7.3으로 설치 한 다음에 여러 명령어를 통해서 설치해주어야만 했다..
하지만,, docker-php-ext- 명령어가 있기에.. 어렵지 않게 처리했다.. (정말 대단하다.. 오히려 리눅스에서 컴파일 시키고 일일히 작업치는 것보다, 도커에서 작업치는게 더 간단하고 편하다 !!)
그렇게, composer, supervisord, cron 을 설치 및 사용하느라, 시간이 좀 걸렸다..
서로 문제되는 부분도 생기고 해서
docker exec -it 2aae261bc3a2 /bin/bash
명령어로 접근해서, 직접 일일히 쳐보면서 문제 일어나는 부분을 고치고 하느라 생각보다 시간이 좀 걸리게 되었다.. (하지만, 내가 좋아하는 사람이 올려둔 github docker 파일을 예제로 보면서 하느라 굉장히 수월했고, 이로 인해서 dockerfile 작성에 대해서 많이 이해하게 되었다)
자… 이제… 7일간의 도커 공부와 데브 환경 세팅이 끝이났으니,, 개발을 시작해야 된다… (하.. 멀었다, 벌써 8월 절반이 갔는데,, 작업은 또 진전이 없다..)
하지만, 그래도 굉장히 좋은 기술을 익혔으니 나쁘진 않다.. 다만… 리눅스에 도커를 설치하고 prod 환경으로 다시 dockerfile, docker-compose를 만들고 테스트하기 까지가 또 시간이 많이 들어갈 것 같아서 걱정이다.. (Dev보다는 복잡하지 않을거 같다, 비슷하기도 하고 Xdebug 빼고 뭐.. 설정 해둘거 설정해두고… 볼륨 마운트 대신에 ADD나 COPY로 넣으면 될거고..)
아무튼, 잘 되겠지.
도커를 통해서, 라라벨 호라이즌도 설치 이용이 가능하고, 라라벨 큐 서버를 supervisord에 올려둘 수도 있고 ! 스케쥴러도 이용할 수도 있고 !! 정말 최고다… 윈도우 환경에서 라라벨을 개발할때에는 큐 서버도 직접 켜야하고, 스케쥴러도 등록하기 번거롭고하지만, 도커 이미지 파일 하나만 세팅 잘해둔다면, 도커 이미지 실행 한번으로 모든 것을 작동시킬 수 있다 ! 지금 바로 도커로 개발 하자 !