Overlay Network 오버레이 네트워크는 물리적 네트워크 위에 존재하는 가상의 네트워크로, 다른 네트워크들을 연결하는 논리적 네트워크입니다. 도커에서는 여러 도커 데몬간의 오버레이 네트워크를 구축하여 도커 스웜과 같은 컨테이너 오케스트레이션 툴을 이용하기도 합니다. Docker Daemon 도커는 기본적으로 Server - Client 구조입니다. 서버 역할을 하는 도커 데몬에 사용자가 도커 cli로 데몬에 요청을 보냅니다. 그러면 도커 호스트에서 해당 동작을 수행하게 되는 것입니다. 그래서 docker 명령어에 -H ${host address}와 같은 옵션으로 호스트를 지정해주면 원격으로 도커 명령어를 수행할 수 있게 됩니다. 데모 처음부터 진행하기에는 꽤나 길어질 내용이라 구성된 인프라로 테스..
Host Networking host networking을 사용할 경우 컨테이너가 도커 호스트의 네트워크를 사용하게 됩니다. 격리되지 않은 네트워크(도커 호스트의 네트워킹 네임스페이스를 사용함)기 때문에 컨테이너에 따로 ip 주소가 붙지는 않습니다. 때문에 NAT(network address translation)을 거치지 않고 사용할 수 있으며, 포트마다 userland-proxy가 생성되지 않습니다. $ docker run --network host --rm -d --name nginx -p 80:80 nginx tail -f /dev/null WARNING: Published ports are discarded when using host network mode d806a666142f93ede292..
Default Bridge Network Network bridge는 link layer로 대표적인 link layer로는 NIC(Network Interface Card)가 있습니다. 실제로 전 글에서 ifconfig로 Docker default network를 조회하였을 때 NIC와 같이 조회되는 모습을 확인할 수 있습니다. 먼저 아래와 같이 alpine 컨테이너 두 개를 만들어줍니다. $ docker run -d --name alpine1 alpine:latest tail -f /dev/null 3d8cd78a27f8aa1703ed78e8592bd074e2aea487141c8b1eec878d92c3217a3a $ docker run -d --name alpine2 alpine:latest tail ..
시작하기 전 저는 도커에 입문할 때, 어려운 용어와 개념들 때문에 입문하기 아주 힘들었던 기억이 납니다. 만약 여러 글을 보면서 이해가 가지 않는다면, 일단 실습 예제라도 하나 따라 해 보면 이해해 아주 큰 도움이 될 것 같습니다. ( 저는 그렇게 이해하기 시작했습니다. ) 도커란 무엇일까 Docker, 즉 도커란 간단히 말해 리눅스 컨테이너를 만들고, 사용할 수 있는 컨테이너화 기술입니다. 만약 컨테이너를 잘 모르겠다면 링크로 들어가 컨테이너의 대한 글을 보길 바랍니다. 도커는 Cgroups등 여러 커널의 기능으로 프로세스를 분리하는데, 이 분리된 프로세스를 도커 컨테이너라고 합니다. 도커 컨테이너는 이미지를 통해 실행되는데 이 이미지는 도커 컨테이너가 실행되기 위한 종속성을 모두 가지고 있으며, 다시..
리눅스 컨테이너란 무엇일까 2013년도 3월에 docker가 발표되고, 점점 IT세상은 컨테이너로 채워지기 시작했고, 뒤이어 2014년도 쿠버네티스 등 컨테이너를 다룰 수 있는 기술이 많아지게 되면서 엄청나게 많은 서버가 컨테이너 위에서 돌아가게 되었습니다. 그런데, 컨테이너란 무엇일까? 리눅스에서 컨테이너는 1개 이상의 프로세스 세트로 돌아갑니다. 그러나 프로세스 내부에서는 각자의 이미지를 가지고 돌아가기 때문에 이식성, 격리 등 부분에서 리눅스 컨테이너는 좋은 효율을 보여주고 충분히 사용자를 만족시켰습니다. 가상 머신과의 차이점 그렇다면 비슷한 효과를 내는 기술인 가상 머신과의 차이점이 궁금할 수 있습니다. 그러나 가상화와 컨테이너는 아래와 같은 여러 차이를 보이고 있습니다. Guest OS에 BIO..