>  기사  >  백엔드 개발  >  Docker가 개발을 위해 golang을 선택한 이유는 무엇입니까?

Docker가 개발을 위해 golang을 선택한 이유는 무엇입니까?

青灯夜游
青灯夜游원래의
2019-12-23 13:58:203648검색

Docker는 PaaS 제공업체 dotCloud가 오픈소스로 제공하는 LXC 기반의 고급 컨테이너 엔진입니다. 소스 코드는 Go 언어 기반의 오픈소스이며 Apache2.0 프로토콜을 준수합니다.

Docker가 개발을 위해 golang을 선택한 이유는 무엇입니까?

Docker는 Golang으로 작성되었지만 Golang을 설치하지 않고도 바로 실행할 수 있습니다. 그래서 이런 질문이 있습니다. Docker는 왜 Golang을 설치할 필요가 없나요?

Docker에서 Golang을 설치할 필요가 없는 이유는 무엇인가요?

Docker에서 Golang을 설치할 필요가 없는 이유는 제가 Java 백엔드 개발자이고 Ubuntu에서 Python으로 개발된 일부 오픈 소스 도구를 사용하기 때문이며 Java 및 Python 오픈 소스 도구 모두 해당 운영 환경을 설치해야 하기 때문입니다. :

● Java를 설치하려면 최소한 JRE가 필요하며 때로는 편의를 위해 JDK도 설치되어야 합니다.

● Python을 사용하려면 최소한 Python 개발 환경이 설치되어 있어야 하는 경우도 있습니다. 때로는 다른 Python 타사 패키지도 설치해야 합니다.

Java를 예로 들면, Java 소스 프로그램은 컴파일러에 의해 컴파일된 후 바이트코드가 됩니다. 바이트코드는 가상머신에 의해 해석되고 실행됩니다. 가상머신은 실행될 각 바이트코드를 인터프리터에게 보냅니다. 특정 기계에서 기계어 코드로 변환한 다음 특정 기계에서 실행합니다. 컴파일러와 인터프리터는 모두 실제로 JVM의 일부입니다. Java의 플랫폼 독립성은 실제로 JVM에 의해 달성되며 Java 프로그램도 JVM에서 실행되어야 합니다.

그러나 Golang 컴파일은 glibc를 제외하고 다른 외부 종속성이 없는 정적 실행 파일을 생성합니다.

그럼 glibc란 정확히 무엇인가요?

사실 glibc는 C 런타임 라이브러리인 GNU에서 출시한 libc 라이브러리입니다. Glibc는 Linux 시스템에서 가장 낮은 수준의 API이며 실행 중인 거의 모든 라이브러리는 glibc에 의존합니다. 이는 또한 Docker가 실제로 Unix/Linux 시스템에서 Golang 없이 실행될 수 있음을 의미합니다.

Docker가 개발에 Golang을 사용하기로 선택한 이유는 무엇입니까?

우선, 현재 주류 서비스는 모두 Unix/Linux 운영 체제를 사용하며 Golang은 제3자에 거의 의존하지 않습니다(glibc에만 의존함). 이는 한계이자 장점입니다. 왜냐하면 이 경우 Golang을 사용하여 개발된 Docker는 기본적으로 Unix/Linux 운영 체제가 설치된 대부분의 서버에서 완벽하게 실행될 수 있기 때문입니다.

요약

많은 프로그래밍 언어에는 몇 가지 제한 사항과 단점이 있지만 때로는 특정 시나리오에 더 적합한 프로그래밍 언어를 선택하면 더 큰 이점을 얻을 수 있습니다. 이득. 이는 프레임워크 선택에도 적용됩니다. 모두가 좋다고 말하는 고급형 프레임워크나 인기 있는 프레임워크가 반드시 필요한 것은 아니며 귀하의 비즈니스에 가장 적합한 프레임워크입니다.

추천 학습: go 비디오 튜토리얼

위 내용은 Docker가 개발을 위해 golang을 선택한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.