일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- git
- c언어
- c#
- jupyter lab
- github
- 포인터
- C# delegate
- Flutter
- 구조체
- Python
- docker
- jupyter
- Unity
- Algorithm
- Data Structure
- 깃
- 유니티
- gitlab
- C++
- C언어 포인터
- 도커
- 다트 언어
- 플러터
- dart 언어
- c# 추상 클래스
- c# winform
- c# 윈폼
- HTML
- Houdini
- vim
- Today
- Total
목록도커 (6)
nomad-programmer
Docker가 제품 환경에서 실제 가동되는 시스템의 대부분은 글로벌하게 전개하는 대규모 웹 시스템으로, 컨테이너 오케스트레이션 툴인 Kubernetes를 사용하여 운용되는 경우가 많다. 하지만 Docker가 갖고 있는 높은 이식성을 살려 기계학습 등에서도 자주 이용되고 있다. 특히 딥러닝(심층학습)에서는 프레임워크나 다양한 라이브러리를 이용하여 개발이 이루어지는 경우가 일반적인데, Docker를 사용하면 그러한 버전의 차이나 환경을 의식하지 않고 개발할 수 있다는 장점이 있다. 예를 들어 기계학습에서 널리 이용되는 개발 툴인 Jupyter Notebook이나 딥러닝이 특기인 프레임워크 TensorFlow는 Docker Hub에서 공식 Docker 이미지를 제공하고 있다. 게다가 Kubernetes에서 T..
설치한 Docker가 올바르게 작동하는지를 확인하기 위해 Docker 컨테이너를 작성하고 콘솔상에 "Hello World" 라는 문자를 출력해보자. Docker 컨테이너를 작성 및 실행할 때는 docker container run 명령을 사용한다. 이 명령의 구문은 다음과 같다. docker container run docker container run : 컨테이너를 작성 및 실행 : 바탕이 되는 Docker 이미지 : 컨테이너 안에서 실행할 명령 예를 들어 Ubuntu의 이미지를 바탕으로 Docker 컨테이너를 작성 및 실행한 후 작성한 컨테이너 안에서 "Hello World" 를 표시하고 싶을 때는 다음의 명령을 실행한다. docker container run ubuntu:latest /bin/ech..
Linux는 Docker를 설치하면 서버의 물리 NIC가 docker0 이라는 가상 브릿지 네트워크로 연결된다. 이 docker0 은 Docker를 실행시킨 후에 디폴트로 만들어진다. Docker 컨테이너가 실행되면 컨테이너에 172.17.0.0/16이라는 서브넷 마스크를 가진 프라이빗 IP 주소가 eth0으로 자동으로 할당된다. 이 가상 NIC는 OSI 참조 모델의 레이어 2인 가상 네트워크 인터페이스로, 페어인 NIC와 터널링 통신을 한다. 가상 NIC (vethxxx)는 컨테이너에서는 eth0으로 보인다. Docker 컨테이너와 외부 네트워크가 통신을 할 때는 가상 브릿지 docker0과 호스트 OS의 물리 NIC에서 패킷을 전송하는 장치가 필요하다. Docker에서는 NAPT 기능을 사용하여 연결..
웹 시스템 개발 시 애플리케이션을 제품 환경에서 가동시키기 위해서는 다음과 같은 요소가 필요하다. 애플리케이션의 실행 모듈 (프로그램 본체) 미들웨어나 라이브러리군 OS/네트워크 등과 같은 인프라 환경 설정 폭포형 개발로 애플리케이션을 개발할 때는 위의 그림과 같은 흐름으로 개발을 진행한다. 개발 환경이나 테스트 환경에서는 올바르게 작동해도 스테이징 환경에서나 제품 환경으로 전개하면 정상적으로 작동하지 않는 경우도 있다. 스테이징 환경이란 지속적 딜리버리가 일어나는 시스템 개발에서 개발한 애플리케이션을 제품 환경에 전개하기 직전에 확인하는 테스트 환경을 말한다. Docker에서는 이러한 인프라 환경을 컨테이너로 관리한다. 애플리케이션의 실행에 필요한 모든 파일 및 디렉토리들을 컨테이너로서 모아버리는 것이..
컨테이너란 호스트 OS상에 논리적인 구획(컨테이너)을 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리나 애플리케이션 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것이다. 호스트 OS의 리소스를 논리적으로 분리시키고, 여러 개의 컨테이너가 공유하여 사용한다. 컨테이너는 오버헤드가 적기 때문에 가볍고 고속으로 작동한다는 것이 특징이다. 오버헤드란? 가상화를 수행하기 위해 필요한 CPU 자원, 디스크 용량, 메모리 사용량 등을 말한다. 도커는 아래와 같은 구조를 사용하고 있다. 보통 물리 서버 상에 설치한 호스트 OS의 경우 하나의 OS 상에서 움직이는 여러 애플리케이션은 똑같은 시스템 리소스를 사용한다. 이때 작동하는 여러 애플리케이션은 데이터를 저장하는 디렉토리를 공유하고,..
Docker는 컨테이너 기술을 사용하여 애플리케이션의 실행 환경을 구축 및 운용하기 위한 플랫폼이다. 애플리케이션의 실행에 필요한 것을 하나로 모아, Docker 이미지를 관리함으로써 애플리케이션의 이식성을 높일 수 있다. Docker는 2013년 3월 Docker, Inc (구 dotCloud)에서 출시한 오픈 소스 컨테이너 프로젝트이다. 2010년을 넘어서면서 서버 시장은 급속히 클라우드 환경으로 옮겨갔다. 이렇게 되다 보니 물리적인 서버를 구입하기보다는 사용 요금만 내고 가상 서버를 빌려 쓰게 되었다. 특히 물리적인 서버를 구축하려면 서버 구입과 설치에 상당한 시간일 걸린다. 하지만, 클라우드 환경에서는 1대가 되었든, 1,000대가 되었든 클릭 몇 번 만으로 가상 서버를 만들어낼 수 있게 되었다...