Dockercon 2018 SF 1일차 제너럴 센션

지난 6월13일 도커콘2018이 열렸습니다. 1일차 제너럴세션에 나온 내용을 간단히 정리해봤습니다.

새로운 CEO 스티브싱(Steve Singh) 발표

컨테이너가 리눅스이고, 윈도우이고, 데이터센터이며 싱글 클라우드다.

도커는 이제 글로벌 스케일로 성장하고 있으며 DevOps와 이노베이션의 중심에 있다.

새로운 키워드도  소개합니다.

  • Choice: 클라우드, OS에 종속되지 않게 해준다.
  • Agility: 생산성, 효율증가
  • Security: 어플리케이션으로부터 데이터 분리

에코 시스템과 커뮤니의 증가도 계속이어지고 있다. MIT 에서 진행하는 AI 코드 챌리지 Battle Code 같은 새로운 커뮤니티도 보이네요.

스타크래프트 Brood War를 도커로 실행하는 시도가 있다는것도 재미있습니다.

Product Manager Gareth Rushgrove 발표

개발자들은 보통 3개의 에디터를 사용한다. 그런데 에디터 유형보다 특이하게 눈에 띄는건 ‘Docker Desktop’ 입니다. 데모가 이어지는데 윈도우기반의 솔루션들이 대부분인거 보면 윈도우 컨테이너의 새로운 이름이 아닌가 하는 생각이 듭니다.

Rashmi Kumar & Andrew Zitney – McKessen

포춘500대 기업에 들어가는 헬스케어 회사, 작년 매출이 $200 빌리언. ㅎㅎ

Docker, k8s 기반으로 인프라를 구축했군요.

위 그림만 보면 Lean과 DevOps를 살짝 결합해 놓은 모습인데 괜찮아 보입니다. 문제를 정의하는것으로 시작해서 파이프라인 기반의 빠른 개발로 해결책을 제공하네요.

클라우드 네이티브가 빠질수 없죠. 기존 레거시를 도커를 기반으로 마이그레이션하고 있네요.

Erin Chapple, VP Microsoft 발표

MS는 이미 2014년부터 Docker를 윈도우 서버에서 실행하기 위한 노력을 진행해 왔습니다. 2016년에는 비록 윈도우 이미지만 가능하지만 윈도우 컨테이너를 네이티브 수준에서 구동하기도 했죠. 작년 도커사가 EE를 출시하며 윈도우 서버도 EE 버전을 출시했군요.

이제는 베타를 넘어 운영환경에서 쓸수 있다고 합니다.  컨테이너 운영도 k8s로 가능한 수준까지 올라왔군요. MS 참 대단합니다.

제 생각에 위 슬라이드가 오늘 발표의 하이라이트가 아닐까 합니다. 윈도우,리눅스 컨테이너를 DockerEE 를 통해서 관리할 수 있다. 오케스트레이션 도구는 Swarm, k8s 중에 선택할 수 있고, 데모 중간에 살짝 보이는 화면 GUI 같은데 깔끔하네요. Docker Cloud 를 기반으로 만든거 같습니다. CLI 는 Docker Compose 쓰는 느낌이 나네요.

뭐랄까요. 마이크로소프트가 더이상 도커사의 파트너가 아니라 주인인거 같다는 인상을 지울수가 없네요. 몇달전 솔로몬하익스가 떠나고 벤헬럽 CEO가 바뀐게 우연일까요.

원본영상

coreos에서 docker-compose 설치하기

오랜만에 coreos를 사용하려니 별게 다 안되네요. docker-compose 설치하다 막혔던걸 간단히 정리합니다.

docker-compose 설치하는 방법은 다음 링크에 나온대로 하면 됩니다.

https://docs.docker.com/compose/install/

그런데 coreos 에서는 안되는데 이유는 다운로드 위치 때문입니다.

coreos 오랜만에 쓰니 좋네요. ㅎ

3번째 도커 워크샵 진행합니다.

스타트업 대표라는 모자를 주로 쓰고 다니지만 가끔은 DevOps 엔지니어 모자를 씁니다.

3번째 Docker Workshop을 진행합니다. 지난  2회에 걸쳐 워크샵을 진행하면서 시간이나 심화내용에 대한 보충이 필요하다는것을 느꼈습니다.

  • 3일, 18시간 진행합니다.
  • 기본:활용 비율이 1:2 로 바뀌면서 활용 부분을 보강했습니다.

Docker기반의 DevOps 인프라 구축 WORKSHOP 3기

패캠 강의는 수강생분들이 열심이라 저에게도 많은 자극이 됩니다. 참여하는 분들이 강의가 끝나고 돌아가실때 듣길 잘했다고 느낄수 있도록 열심히 준비해서 뵙겠습니다.

No DOCKER 체인 에러

오랜만에 물리장비에 docker 엔진을 설치하고 컨테이너를 실행하는 작업을 했습니다. 그런데 분명히 잘 실행되던 컨테이너가 갑자기 iptable 에 DOCKER 체인이 없다는 에러가 뜨면서 실행되지 않았습니다.

구글링을 해보니 아래와 같은 이슈 리포팅이 있더군요.

https://github.com/docker/docker/issues/1871

아래 블로그 내용을 참고해서 시도해 봤습니다.

http://se2n.com/study

해결이 안되다가 결국 docker 엔진을 재 시작하니 문제없이 동작하네요. 해결하고 나서야 제가 iptable을 재시작한 이후에 이런 이슈가 생겼다는게 떠 올랐습니다.

결론 iptable을 재시작하면 docker 엔진도 재 시작해야 한다.

패스트캠퍼스에서 도커 강의 합니다.

패스트 캠퍼스에서 도커 강의 진행합니다.

2주에 걸쳐 매주 토요일 2회로 진행하니 도커를 이용해 인프라 환경을 구축하고 싶은 분이라면 참여하세요.  도커 초보이신분도 따라올 수 있도록 약간 쉽게 꾸몄습니다. 도커를 어느정도 써보신 분이라면 1일차는 쉽다고 느끼실거 같고, 2일차는 흥미롭게 들으실수 있습니다.

2일에 60만원이면 국내 교육으로 치면 비싸다고 생각할수도 있지만 비슷한 교육을 외국에 나가서 받는것과 비교하면 저렴한 편입니다. (제가 스페인에서 1일 도커 교육받은게 100만원이 넘었던것과 비교하면 ^^;)

상세한 내용은 아래 링크를 참고하세요.

[상세페이지] Docker 기반의 DevOps 인프라 구축 WORKSHOP 1기

 

도커 이미지 빌드

도커로 웹앱을 빌드하는 작업은 적당한 환경이 제공되지 않으면 불편하다.
이때 가장 중요한건 도커 레지스트리 – 이미지저장소 이다.
편한 도커이미지 빌드환경을 구성하려고

첫번째 ec2로 젠킨스와 레지스트리를 설치했다.
레지스트리는 https를 지원해야 해서 인증서를 설치하고 젠킨스가 레지스트리에 푸시할때 시간이 덜 걸리라고
같은 vm에 함께 구성했다. 그런데 이렇게 해놓고 1-2주 정도 지나니 용량 문제가 발생했다.
ebs 용량 30기가가 금방 차버렸다.

두번째 도커허브 자동빌드를 설정했다.
bitbucket에 전용 레파지터리를 만들어 두고 푸시되면 자동빌드가 되도록 설정했다.
용량걱정이나 관리부담은 덜었지만 빌드가 즉시 실행되지 않고 패러럴 빌드가 실행되는게 불편했다.
그리고 생각보다 빌드속도가 느렸다.
게다가 앱을 패키징해서 git에 푸시했는데 최신본이 잘 반영되지 않는 이슈도 있었다.

세번째 로컬빌드후 도커허브에 푸시한다.
빌드를 로컬에서 실행하도록 했다. 로컬에서 패키징과 빌드가 되는게 좀 찜찜했지만 그래도 속도는 빨랐다.
도커허브에 태그로 푸시해놓을수 있으니 배포도 편해졌다.

결론.
로컬 빌드, DockerHub 레파지터리 사용.
전용서버가 한대 있다면 젠킨스로 빌드해서 DockerHub에 푸시해놓고 다른 서버에서 풀링해서 쓰도록 하는게 좋다.

Docker가 Unikernel System 인수

도커사가 Unikernel System을 인수했다고 1.26일 발표했습니다. 작년 DockerConEU 2016에서 유니커널기반의 도커 이미지 데모를 봤던 기억이 납니다. NginX가 2.2M, Mysql이 4.5M 밖에 되지 않더군요. 이정도면 임베디드 장비에 올려도 문제없을만한 수준 아닌가요.

유니커널이 뭐길래 이렇게 작은 이미지를 만들수 있는 걸까요 그림 출처

specialisation

리눅스 컨테이너를 가상서버에서 실행한다고 했을때 왼쪽의 그림처럼 컨테이너가 리눅스 커널을 공유하기 때문에 이미지 크기가 줄어들게 됩니다. 하지만 유니커널은 커널을 공유하는게 아니라 컨테이너에서 실행되는 어플리케이션이 필요로 하는 내용만 남기고 나머지를 모두 제거해 버리는 방식입니다. 그러다 보니 용량이 엄청나게 줄어드는 효과가 있습니다. 반면에 컨테이너에 다른 어플리케이션을 실행하는건 불가능해집니다.

유니커널이 내세우는 장점은 아래와 같습니다.

  • 보안이 증가한다.
  • 최적화가 잘된다.
  • 부팅속도가 빠르다
  • 이미지가 작아진다.

유니커널을 일반적으로 사용하기는 어려워 보입니다만 특별한 목적에 맞는 이미지를 만든다면 유용할거 같네요.