golang docker 이미지 다이어트하기.

golang(이하 go)으로 작성된 애플리케이션을 Docker로 만들다가 문득 "go로 작성된 애플리케이션은 단독으로 실행할 수 있는 파일이 만들어지니까, 만약 빌드된 파일만 배포하여도 실행이 될까?"라는 궁금증이 생겼습니다. 그래서 몇 가지를 해봤습니다. * 사용했던 코드는 Docker image를 만들었던 코드는 주제와 관계 없는 내용이 담겨있어 오히려 내용을 이해하는 데, 방해되기 때문에 간단히 Hello World를 출력하는 코드로 대신합니다. package main import "fmt" func main() { fmt.Printf("hello, world\n") } 간단히 빌드를 하고나면 2.1 메가 짜리 실행 가능한 파일이 생깁니다. $ go build main.go $ ls -alh tot..

Docker dangling image 없애기.

도커를 사용하다 보면, 아무런 태그가 달리지 않은 : 같은 이미지를 흔하게 볼 수 있습니다. 이런 이미지는 눈에 거슬리기도 하고, 사용하지도 않기 때문에 보이는 족족 삭제를 하고 있습니다. 그런데 조금만 넋 놓고 살다 보면 그런 이미지들이 한가득 있는 것을 보고, 한 숨을 쉬곤 합니다. 이런 이미지들은 왜 생기는 것이며, 어떻게 하면 쉽게 삭제할 수 있을까요? 우선 시작하기 전에 hello-world 이미지를 만들어보겠습니다. ( https://github.com/docker-library/hello-world ) 리파지토리를 클론 하고, 도커 이미지를 만들어 줍니다. $ git clone https://github.com/docker-library/hello-world $ cd hello-world $..

1분 만에 우분투 개발환경 만들기.

회사에서는 우분투, 윈도우즈 OS를 가진 두 개의 노트북을 사용하지만, 집에서는 그렇지 못합니다. 윈도우도 개발환경으로 사용하는데 충분하지만, 그래도 우분투 터미널에 익숙해져 있기도 하고, 오픈 소스 중 일부는 우분투 같은 리눅스에서만 실행할 수 있기에, 종종 ubuntu를 개발환경으로 사용 합니다. 최근에 집에서 사용하는 데스크탑 컴퓨터를 업그레이드하면서, OS도 새로 설치하는 바람에 우분투 개발환경도 새로 만들었습니다. 이 전에는 VirtualBox를 사용했었지만, 윈도우10에서 Docker를 이용해서 개발환경을 만들었고 그 과정 중 일부를 정리해봤습니다. 아 개발환경도 어떤 걸 개발하느냐에 따라 많이 다를 수 있겠네요. 저는 주로 백엔드 애플리케이션을 개발하고 간혹 ML을 하기도 합니다. 프로그래밍..