docker 사용 시 sudo 명령 일일이 치지 않게 하기

사실 좀 위험하다고 생각한다. docker 권한이 root 권한을 이용하기 때문에 sudo 를 사용하도록 해야 그나마 좀 더 보안적인 요소가 되긴 한다만..

자주 쓰는 머신이고, 나 혼자서만 쓴다면 진짜로 귀찮은 게 현실이다. 그렇다면 이걸 항상 root가 아니라 내 계정으로 쓰게 하고 싶은 것이다. 이럴 때에는 할 수 있는 방법이 두 방법이 있다.

  • root로 로그인을 한다
  • 내 계정을 docker 그룹에 추가한다.

root 계정으로 로그인…. 하지마라. 상식이 있다면 안할 것이다.

그럼 선택지는 이거 뿐이다. 내 계정을 docker 그룹에 추가하는 것.

스크린샷_2017-07-27_14-26-55.png

사실 해당 내용에 대해서는 리눅스에서 자동 설치 스크립트로 설치를 하게 되면 하는 방법과 함께 경고를 날려준다. 도커 호스트를 이용하는 작업 자체가 루트 권한을 이용해야 하기 때문에 여러모로 말이 많게 나오는 것이다. 그러나 귀찮다면 직접 입력해보자. 아, 실행 후에 서비스 재시작도 꼭 해줘야 한다.

스크린샷_2017-07-27_14-29-06.png

이제 이게 제대로 되어있는지 확인해보자. 도커를 이용하여 우분투 컨테이너를 받아오려고 한다.

스크린샷_2017-07-27_14-39-49.png

그냥 잘 받아와지고 있다. 앞으로 예제에 그냥 sudo 안쓰고 하려고 하는데 이게 왜 이러냐고 물어보는 건 더 없기를…

 

64비트 모드까지 부팅시켰는데..! ㅠㅠ

스크린샷_2017-07-20_12-58-15

기분전환 삼아서 하는 운영체제 개발….

이제는 ia32-e 모드를 지나서 645비트로 동작시키도록 작업을 하고 있는데…

도중에 자꾸 덤프 뜬다. 작업 실행 도중에 코드 다 안짜고 멈추게 해서 그런가…ㅠㅠ

저기까지 진행한 작업이 메모리 구조를 페이징 구조로 변환해서 페이지와 세그멘테이션을 제대로 정리해서 메모리 관리가 될 수 있도록 한 기본 구조까지 만든 것이다.

틈ㅁ내서 만드는 거라 어차피 진도도 덜 나가고…ㅠㅠ

내 연구 테마가 메모리 매니지먼트닫 보니깐 여러모로 더 생각해서 짜게 되었다. 안그러면 그냥 단순한 레벨에서 걍 구현만 하고 끝내는 수준이었을 텐데…ㅠㅠ

111 – make로 컴파일 자동화하기

프로그래밍을 할 때는 아무리 작은 수정이라도 수정을ㄹ 하면 소스 파일을 재컴파일해야 실행 파일에 수정 내용이 반연된다. 그런데 파일 하나나 작은 수의 파일로 이루어진 프로그램에서는 별 문제가 없으나, 여러 파일로 이루어진 대규모 프로그램인 경우에는 파일 하나만 수정해도 몯든 파일을 재컴파일해야 하게 되므로 부담이 크다. 이와 같이 여러 파일이 이루어진 프로그램을 개발할 때, 통합 개발툴의 경우에는 설정도 간단하고 자동으로 관리까지 해주니 편한 반면 리눅스 환경에서 개발을 할 경우에는 이 여러 파일로 이루어진 프로그램 코드의 컴파일을 관리해줄 수 있어야 한다.

make는 주어진 조건으로부터 대상을 만들어내는 다목적 프로그램으로, 다수의 소스 파일로 구성된 큰 프로그램 중 어떤 파일이 변경되었으므로 재컴파일이 필요한지 판단해 프로그램 개주성 작업을 효율적으로 수행하는 역할을 해준다. 그리고 이 때, 어떤 일을 해야 하는지 make에 알려줄 정보를 담고 있는 파일이 makefile이다. make 자체로도 여러모로 옵션과 기능들이 있는데 이 기능들에 대해서는 하나하나 살펴보도록 하겠다.

김기창 교수가 불편한 사람들…

이런 말 될 수 있으면 별로 적고 싶진 않았는데…. 페이스북쪽에 보면 한국 IT인 연합회라는 IT인들이 제 목소리를 낼 수 있는 장소를 만들어서 정책 반영이나 정치인 지원을 할 수 있는지를 모아놓고 토론하는 공간이 있다. 학생들은 기웃거리기도 힘든 공간이다. 기본적으로 이슈가 되는 이야기들에 대해서 본인 생각 적어보고 하는 곳이라서 솔직히 말하면 그냥 어떤 이야기를 하던 그건 자유인 곳이다. 싸움만 안나면 되니깐…

 

공인인증서가 까이는 가장 기본적인 이유는 전자서명의 방식을 온라인에서도 이용하고 싶은데, 한국식 전자서명 방식을 이용하려면 “전자인감”이라는 제도를 만들어야 한다. 여기서부터 문게가 되는 것이다. 집에 보면 다들 인감 하나씩 가지고 있다. 이 인감을 컴퓨터에서 그대로 쓰고 싶은데, 이걸 x.509 v3 기반의 인증서로 만들고, 그냥 막 만들게 할 수는 없으니 행정부 보증하에 개인정보를 특정 발급자한테 발급받게 한다. 보증 주체는 당연히 은행, 보험회사들이고, 금융결제원 하에 발급이 되니 공적으로 공신력을 가진 파일이 만들어지는 것이다. 그래서 우리는 정부기관 일과 은행 업무, 쇼핑 등에 공인인증서를 통한 전자인감을 이용한다. (쇼핑하는 데 왜 인감을 찍어야 하는지는 묻지마라. 법으로 그렇게 만들어버렸다.)

자, 그럼 이 인감을 내 하드디스크 아무데나나 내 아무 USB 저장소에 저장한다. USB 저장소는 자꾸 망가지니 사람들이 하드에 저장한다. 내 개인음을 입증하는 파일을 내 하드에, 내 폰에 대충 저장한다? 저장소 위치는 누구나 다 알고? 게다가 보안이라고는 거의 전문지식 또한 없는 일반 사용자한테 예예만 선택하세요라고 오래전부터 가르쳐놓고는 이제와서 보안의 책임을 일부 내놓고? 게다가 이거 솔루션 제공하는 프로그램들이 털리거나 유사 프로그램 설치에 주의하라는 일들 미친듯이 터지는 마당에???

이 이야기를 솔직히 진짜로 하고 싶지 않았습니다. 보안에 대해서 별로 잘 다루지 않는 저라고 해도, 보안공학적으로 말도 안되는 이야기는 좀 까야지 될 거 같았는데, 그럴 이유가 생겼습니다. 아래의 주장들인데, 솔직히 공인인증서 찬성론자들의 말만 바뀐 주장인데, 스크린샷_2017-07-04_13-12-18스크린샷_2017-07-04_13-12-23

결론부터 말하면 반은 맞고 반은 틀린 이야기입니다. (그전에 기업호민관 출신이 맞는 소릴 한다는 이야기에 대해서는 질문 안받겠습니다.)

맞는 이야기가 될 수 있는 이유는 바로 한국 정부에서 발전시킨 방향에 대해서만 쭉 이야기 했기 때문에 맞는 겁니다. 실제로 지금 공인인증서가 없어지지 못하는 가장 큰 이슈가 바로 전자 서명입니다. 위에서도 잠시 설명했지만 또 적자면, 전자 서명 시스템을 한국식으로 맞춰서 인감 제도에 대해서 도입을 하게 되다보니 지금의 공인인증서가 이루어진 것은 맞는 겁니다. 그러니 당연히 이렇게 되죠. 한국식 서명제도의 기본은 인감인 건 다들 아실 겁니다. 그리고 그 인감을 개인이 가지고 있죠. 공인인증서 역시 마찬가지입니다. 거래에 쓰이면서도 개인이 개인의 PC에 저장하죠.

틀린 이야기라고 하는 것이 바로 이 한국식이라는 것만 강요해서 생기는 문제인 겁니다. 전세계적인 보안과는 맞지 않는 보안 방식을 만들었다는 거? 특허는 되겠죠. 근데 실제로 사용해보려고 하니 이런 저런 문제 다 터지는 겁니다! 집이 털려서 인감 털리면 답 없듯 PC 털려서 인감 도둑맞고 하는데도 그게 도둑맞은 거라는 걸 서류 내미는 곳에선 모른단 말입니다! 그리고 옛날엔 그걸 강조했다고요! 게다가 나중에 와서 이걸 자율화 시켜서 니들 맘대로 해라고 해도 공인인증서 이용하는 기존 제도 쓰면 면책될만한 법률이 얼마나 많은데 그걸 왜 바꿉니까!

라고 아무리 떠들어도 저 덧글 단 사람처럼 불편해 하는 사람 많습니다. 저런 분들은 대체 뭔 생각들일까요?

kisa.png

 

공인인증서 뒤에는 엄청난 이권 단체들과 사람들이 존재합니다. 제일 대표적인 식충이 쓰레기 단체의 이미지를 먼저 올리고 시작합니다. (욕 하고 싶으면 하라고 그래..) 그리고 그걸 지시하는 공공기관, 대대적으로 안전하다고 선포해대는 공공기관, 그걸 뿌려대는 업체들, 그리고 그거 땜에 보안으로 일해먹는 사람들 등등.. 당연히 많죠. 공인인증서가 얼마나 오래된 작품인데 저런 이권들이 없으면 말이 안되죠.

KISA의 공인인증서 찬양 수준은 진짜로 사이비 종교라고 해도 될 정도로 무시무시합니다. 저들 이야기 들어보면 그냥 컴퓨터 켜고 끄는 곳에다가도 공인인증서를 심어야 할 거 같은 생각을 하게 됩니다. 그정도로 사랑하고 공인인증서 없으면 대체 뭐하는 곳인지조차 모를 그럴 곳이죠. 지들이 인증한 곳에서 보안사고 났는데도 나중에 지들이 인증하는 시스템대로 구축 안했다고 까는 곳이 KISA이고, 거기 팀장이란 사람들은 대놓고 병신 소리 막 떠드는 곳이니깐요.

자, 이제 이 불편한 사람들이 대충 어떤 사람들인지 감이 오신 분들이 있을 겁니다. 그럼 이 불편한 사람들은 자기가 인생 살면서 단 한번이라도 공인인증서 땜에 보안 사고 안당했을까요? 그렇기 때문에 당당하게 이야기 할 수 있는 걸까요? 이 사람들은 피해자라는 것이 보이지 않는 걸까요? 피해 기사들도 보이지 않는 걸까요?

지들하곤 아무 상관 없습니다. 결과적으로 법 테두리 안에서 잘 진행되었으면 자기들 책임 아닌 겁니다. 대단한 사람들입니다.

엑티브 X 없애겠다고 다짐한 이번 정부의 행보에 대해서도 예외적인 곳에서는 exe를 사용하게 하겠다는 조항이 있었습니다. 100% exe로 전환될 것이고, 그 최전선에는 공인인증서 사용기관들이 있을 겁니다. 그럼에도 불구하고 여러모로 사고 터지고 난리나는 곳에서도 여전히 공인인증서를 가지고 있어야 하는지… 초딩도 알 수 있습니다.

p.s. 솔직히 걍 전통적인 한국인 종특을 가진 놈들이라고 말하고 싶습니다. 전 세계 어딜 가도 한국인들이 어디서 뭔 잘못했다가 외국인들한테 몰매맞는 짓 하고 돌아오면 외국에서 차별당했느니 뭐 어쩌느니 하는 식으로 어그로 끄는 짓꺼리랑 비슷하게 보입니다. 그거 땜에 MS가 한국 정부 요청 땜에 IE 랑 XP 고체 안하고 계속 버텨서 보안 업뎃 쭉 해주고 했던 그런 것도 있고.. 까고 까면 욕밖에 안나옵니다…

요구사항: 어디서나 지속적으로 사용 가능한 서비스

클라우드 환경으로 바뀐 지 오래되고나서부턴 서비스들이 어디서나 지속적으로 사용 가능한 서비스에 대해 거의 기본적으로 제공해주고 있는 것 같다. 거기에 한술 더 떠서 디바이스 간 경계가 많이 얇어지고 있다. (어디까지나 서비스의 입장이다.)

근데 아직 그런 게 전행되지 않는 서비스들도 많다. 좀 초창기에 나온 시스템들이 그런 것이 많은데, 서비스 개조에 개발이 어려운 것도 있지만 실제로 하려고 하는 마음이 있는지 좀 의심이 들기도 한다.

문서 작성 프로그램들의 경우에는 클라우드 저장 공간과 연동할 수만 있다면 어디서든 수정 가능하고 공유 가능한 상황이 되다보니 그냥 뭐 편하게 이동하고 있는 거 같다. 심지어 개발 환경까지 이루어지고 있는 판이니 이런 쪽은 이미 답 나왔다고 보여진다.

문젠 메신저들 같다. 어디서나 대화 내용을 불러오고 그 내용을 확인해서 지속적으로 대화가 이어질 수 있어야 하는데, 아직 그런 게 없는 메신저가 좀 있다. 구체적으로 말하면 바로 카카오톡. 라인도 텔레그램도 스카이프도 슬랙까지도 지속적인 대화 내용 제공은 요즘 다 되는 기능인 데다가 기종 간 대화가 그대로 이어질 수 없는 것, 심지어 아직까지 있는 기종 제한까지 겹치는 건 메신저로써의 기능으로써 절반 정도를 기능 상실하고 있다고 보여진다.

메일이나 아이디 가입이 우선이 아니라 휴대폰 번호에 의한 가입이다보니 더더욱 그런 거 같다. 전반적인 시스템들이 기존의 네이트온에 닮아가는 것도 솔직히 싫다만… 저점 카톡 버릴 이유만 들어나는듯.

리눅스에서의 도커 설치

리눅스 환경에 친화적인 것이 도커이다보니 리눅스쪽의 설치가 좀 더 자세하게 나와있다. 반면 맥과 윈도우의 경우에는 여러모로 프레임워크와 라이브러리화 되어 있기 때문에 그걸 그대로 설치하여 쓰는 형태로 구성되어서, 설치 프로그램으로 만들어져 있다. 그것이 이전 글에서 쓴 Docker Toolbox이다.

리눅스에서 동작하는 도커 환경은 모든 작업이 root 권한을 요구한다. 그래서 죄다 sudo를 이용하여 설치한다는 걸 먼저 알아두면 좋다. 그럼 이제 리눅스에서 설치하는 방법을 이야기하려 한다. 

  • 자동 설치 스크립트를 이용하려 설치하기
  • 패키지 배포판을 이용하여 설치하기
  • 최신 바이너리 받아서 설치하기

일단 가장 쉽게 하는 것이 바로 자동 설치 스크립트를 이용하여 설치하는 것이다. 이걸 이용하면 리눅스 배포판과 버전에 맞춰서 알아서 설치할 수 있도록 해준다. 설치 스크립트는 “sudo wget -qO- https://get.docker.com/ | sh”인데, 아래의 화면을 참고하면 된다. 참고로 규링의 경우에는 이미 설치를 한 경우라서 다시 설치하려 하니깐 오류가 난 것이다.


패키지 배포판으로도 또한 존재한다. 우분투 환경에서는 docker.io라는 이름으로, 레드햇 계열에서는 docker-io라는 이름으로 존재한다. 패키지 배포판에서 검색해서 직접 이름을 확인하고 설치를 하면 된다.

마지막으로 최신 바이너리를 직접 받아서 수동으로 설치하는 방법이 있다. 자동 설치 스크립트가 실패한 경우에 수동으로 직접 압축된 바이너리를 풀어서 사용하는 것이다. 또한 패키지 배포판으로는 도저히 최신 버전이 올라가지 않는 경우나 각각의 리눅스 배포판마다 전부 다 지원하는 것이 아니다보니 직접 이걸로 설치해서 쓰는 경우에도 있다.

참고로 자동 설치 스크립트를 이용하면 기본적으로 hello-world가 있다. 안쓸 경우에는 도커에서 제거 명령어를 이용하면 된다.

Docker Toolbox – 윈도우와 맥에서 도커 설치

도커는 주로 리눅스 환경에서 동작하는 것을 기준으로 한다. 그러나, 맥과 윈도우에서도 도커를 쓰지 못하는 건 아니다. 그걸 위해서 별도의 패키지가 존재한다.

이전에는  Boot2Docker라는 프로젝트로 배포가 되었었는데, 이건 더 이상 업데이트가 되질 않는다. 그리고 나서 도커쪽에서 나온 것이 바로 Docker Toolbox이다. 인스톨러 형식으로 되어 있으며, 동작시키기도 어려운 환경은 아니게 되었다.

스크린샷 2017-07-01 오후 12.29.49.png

홈페이지 화면이다. 다운로드 링크가 있으며, 아래로 내려가거나 메뉴에 보면 튜토리얼이 나와있다. 도커 튜토리얼과도 연동되어 있으니 그냥 그대로 쓰기만 하면 된다.

스크린샷 2017-07-01 오후 12.30.20

설치도 인스톨러 방식이다. 이건 윈도우도 마찬가지다. 단, 윈도우의 경우에는 관리자 권한을 허용하는 화면이 마저 나올 것이다.

스크린샷 2017-07-01 오후 12.30.47.png

도커를 시작하는 방법이라면서 나오는데, 어플리케이션에도 똑같은 녀석이 있다. 근데 커맨드 라인에서 동작하는 도커를 별도의 실행 아이콘을 만들어서 터미널로 연동시켜주는 걸 이해를 못하겠다. 아무래도 윈도우 환경을 의식한 거 같다.

스크린샷 2017-07-01 오후 12.32.08.png

어플리케이션에도 똑같은 것이 있고..

스크린샷 2017-07-01 오후 12.32.32.png

실행된 터미널에서 docker라고 입력만 한 화면이다. 제대로 실행되어 사용 방법을 알려주는 걸 보여준다.

이처럼 윈도우랑 맥에서는 진짜 쉽게 설치를 할 수 있다. 리눅스에서는 여러모로 설치 방법들이 나와있기 때문에 좀 별도로 내용을 작성해야 한다.