-
[Docker] 자체 네트워크 드라이버Docker 2019. 4. 8. 00:02
도커 자체 네트워크 드라이버는 도커 엔진의 일부이기 때문에 추가 모듈이 필요하지 않다. 따라서 docker network 명령으로 바로 사용할 수 있다. Docker Host Network Driver 일반적으로 다른 네트워킹 드라이버를 사용하면 각 컨테이너는 서로 간의 완전한 네트워크 분리를 위해 자체 네트워크 네임스페이스(혹은 샌드박스)에 배치된다. 호스트 네트워크 드라이버는 컨테이너가 호스트의 네트워킹 스택을 사용하는 옵션이다. 호스트 드라이버의 컨테이너는 모두 같은 호스트 네트워크에 있고, 호스트의 IP 스택과 네트워크 인터페이스를 사용할 수 있다. 호스트 네트워크의 모든 컨테이너들은 호스트 인터페이스에서 서로 통신할 수 있다. 네트워킹 관점에서 컨테이너가 없는 호스트에서 여러 프로세스가 동작하는..
-
[Docker] DockerfileDocker 2019. 4. 4. 13:06
Dockerfile은 COMMAND-VALUE 쌍으로 구성된 지시어로 이루어진 도커 이미지 설정 파일이다. 베이스 이미지를 지정하고, 컨테이너에서 실행되는 명령을 정의하고, 환경 변수를 설정하고, 컨테이너에서 실행되는 데몬을 지정할 수 있다. Dockerfile에서 파일 시스템에 변경을 가하는 각 지시어는 베이스 이미지의 이미지 레이어의 상위 레이어가 생성되어 변경사항이 적용된다. FROM FROM 지시어로 베이스 이미지를 지정하여 레이어를 생성한다. 지정된 이미지가 도커 호스트로 자동으로 풀다운된다. 도커 호스트 또는 Docker Registry(DockerHub, Private Docker Registry, ..)에 있는 이미지만 지정이 가능하다. 아래 세가지 형식으로 사용된다. FROM IMAGE ..
-
[Docker] 데이터 볼륨Docker 2019. 4. 3. 15:51
도커 컨테이너는 동일한 이미지를 기반으로 복수로 생성될 수 있는 장점이 있지만, docker commit 해서 이미지를 생성하지 않는 한 컨테이너가 종료되면 컨테이너 레이어Writable Layer의 데이터가 사라진다. 도커는 데이터를 보존하거나 컨테이너간에 데이터를 공유하기 위해 파일 시스템을 공유하는 기능을 제공한다. 호스트의 파일 시스템을 공유하는 방법 docker run 으로 컨테이너를 실행할 때 -v {HOST_DIRECTORY}:{CONTAINER_DIRECTORY} 옵션을 주면 된다. 이때 존재하지 않는 디렉토리는 자동으로 생성된다. $ docker run -itd -v /tmp/c1:/tmp --name c1 centos 83a4c3153311e040797c82758917433630b85d..
-
[Docker] 이미지 아카이브Docker 2019. 4. 2. 23:00
컨테이너 이미지 아카이브 도커 호스트의 컨테이너 이미지를 아카이빙할 수 있다. 만약 구동중인 컨테이너의 이미지를 아카이빙하려면 docker commit 명령으로 이미지를 만들어서 아키이빙해야한다. docker save 명령으로 여러 컨테이너 이미지를 아카이브로 추출할 수 있다. $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest 5eace252f2f2 6 days ago 132MB centos latest 9f38484d220f 2 weeks ago 202MB $ docker save -o archive-img.tar centos httpd $ file archive-img.tar archive-img.tar: POSIX tar archi..
-
[Docker] 컨테이너의 구조Docker 2019. 4. 2. 01:34
Union File System Union Mount 복수의 파일시스템을 하나의 파일시스템으로 마운트하는 기능으로, 두 파일 시스템에서 동일한 파일이 있다면 나중에 마운트된 파일 시스템의 파일을 오버레이한다. 하위 파일시스템에 대한 쓰기 작업은 CoW(Copy On Write) 전략에 따라 복사본을 생성하여 수행하므로 원본 파일 시스템은 변하지 않는 것이 특징이다. 일종의 상속inheritance와 비슷한 개념이기도 하다. 실제로 이 기능의 초기 구현은 상속 파일 시스템이라고 불리기도 했다. Union File System 종류 Union Mount를 지원하는 파일 시스템 UnionFS Linux, FreeBSD, NetBSD를 위해 초기에 구현된 유니언 파일 시스템 AUFS(Advanced Union ..
-
[Android] 안드로이드 ImageView 핀치 줌(Pinch Zoom) 기능에 대해Android 2019. 3. 28. 21:57
안드로이드 앱 내에서 이미지를 확대하거나, 축소하는 기능을 넣어야 할 때가 있다. 내가 예전에 구현했던 코드에서는 ImageView를 확장해서 만일 두 손가락으로 터치 액션이 발생되면(ACTION_POINTER_DOWN), 두 지점들끼리 거리를 계산한 값을 저장하고, 터치한 손가락의 MOVE 액션(ACTION_MOVE)이 발생될때마다 처음에 터치한 지점의 거리와는 달라지게 되므로, 해당 거리만큼 ImageView.setScaleX(float scale), ImageView.setScaleY(float scale) 메서드를 사용해 확대/축소한다. 한손가락 터치 액션(ACTION_DOWN)이 발생된 경우 ImageView.setPivot(float x, float,y) 메서드로 이미지뷰의 특정지점으로 스크린..
-
네이버 지도 API, 카텍(Katech) 좌표계 변환카테고리 없음 2019. 3. 28. 21:33
졸업 작품으로 네이버 Open API를 활용한 안드로이드 앱을 개발했다. 이곳에서 지원하는 네이버 검색/지역 API는 네이버 검색 서비스를 통해 특정 점포의 점포명, 좌표값 등을 제공하는데 이때 좌표값은 정수형으로 반환한다. 문제는 실제로 이 좌표값을 네이버 지도 API에 그대로 적용했더니 엉뚱한 위치로 중심점이 이동해버리는 상황이 발생했다. 네이버 개발자 문서를 확인해보니, 네이버 검색/지역 API에서 반환하는 좌표값은 카텍(Katech) 좌표를 출력한다고 명시되어 있었다. 이에 반해 네이버 지도 API는 해당 좌표계를 그대로 사용하지 않기 때문에 발생된 문제였다. 조사해본 결과는 아래와 같다. – Bessel 타원체 지구 모델링에 위도 128도, 경도 38도를 중심으로 TM방식으로 투영한 좌표계로써,..