목록docker (7)
킹의 개발일지
만약 컨테이너의 파일시스템에서 index.html을 직접 수정했을 때, 컨테이너가 사라진다면 어떻게 될 까? 컨테이너가 사라지면서 파일시스템도 같이 날아갈것이다. 그러면 어렵게 작업한 내용이 전부 사라질 것이다! 그렇다면 컨테이너의 /usr/local/apache2/htdocs/ 디렉터리와 호스트의 Desktop/htdocs를 연결하고 호스트쪽에서 수정이 이루어졌을 때 컨테이너의 파일시스템에 반영된다면 굉장히 편할 것이다. 컨테이너가 날라가더라도 호스트에 파일이 남아있을것이므로 안전하고, 파일의 버전관리도 쉬울것이다. 실행환경은 컨테이너에 맡기고 파일을 수정하는 작업을 호스트에서 진행하는 방법에 대해서 알아보자! 일단 C:\htdocs 경로에 htdocs 디렉터리를 만들어서 안에 index.html 파일..
이전 포스팅에서 httpd 이미지를 포트포워딩을 통해 run 해서 index.html 페이지를 띄우는것까지 했었다. 그렇다면 index.html 파일을 수정하고 싶을 땐 어떻게 해야할까? index.html 파일을 수정하기 위해서는 컨테이너 안으로 들어가서 수정할 수 있어야 한다. 레퍼런스에서 보면 exec 명령어를 찾아 볼 수 있다. exec 는 컨테이너에 명령을 전달해주는데 사용한다. docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 전에 만들어둔 컨테이너에 명령을 전달해보자. 컨테이너에 pwd와 ls 명령을 전달했을 때 결과이다. 그때마다 exec ws1 ... 와 같이 써야할 것이다. 때문에 우리가 컨테이너와 지속적으로 연결을 유지하면서 계속 명령을 전달하고 ..
네트워크 일반적으로 웹 서버를 사용한다는 것은 웹 브라우저와 웹 서버간의 통신이라고 볼 수 있다. 우선 웹 서버를 이용하기 위해서는 최소한 두대의 컴퓨터가 필요하다. 한 대의 컴퓨터에는 웹 브라우저가 설치돼 있고 한 대의 컴퓨터에는 웹 서버가 올라가있다. 그리고 웹 서버에는 웹 페이지를 파일로 만들어서 컴퓨터 특정 디렉토리에 위치시켜야한다. 이 파일이 저장된 공간을 파일 시스템이라고 부르자! 사용하고 있는 웹 서버가 아파치이며, 파일 시스템 내에 있는 /usr/local/apache2/htdocs 경로에 index.html 파일이 있다고 해보자. 그리고 어떤 사용자가 웹 서버에게 '누가 이 웹 페이지를 요청하면 이 디렉토리에서 찾아!' 라고 설정해두었다고 하자. 그래야 웹 브라우저로부터 요청이 왔을 때 ..
저번에는 이미지를 pull 하는 방법을 알아봤다. 지금부터 이미지를 실행시켜 컨테이너를 만드는 방법인 run을 알아보자! 지금은 윈도우를 사용하고 있기에 도커 데스크탑 프로그램을 사용해서 이미지를 pull 하거나 run 시켜 컨테이너를 간단히 생성 할 수도 있다. 하지만 gui가 없는 환경을 대비해 Docker CLI를 통해서 컨테이너를 실행시켜 보는 방법을 알아 볼 것이다. 도커 명령줄 인터페이스에서 사용하는 명령어들은 레퍼런스 사이트에 자세히 적혀있다!! https://docs.docker.com/reference/ Reference documentation docs.docker.com 우선 이전 시간에 받아둔 httpd 이미지를 run 시켜보자. 이미지를 run 하기 위해서는 아래와 같은 명령어가 ..
도커를 사용하기위해 이해해야할 몇가지 개념들을 비유를 통해서 살펴보자! 우리가 휴대폰을 하면서 어떤 앱이 필요하다고 하면 우린 앱스토어에서 찾을것이다. 앱스토어와 비슷한 역할을 하는것이 도커 허브, 레지스트리라고 불리는 서비스다. 우린 도커허브를 통해 서비스에서 필요한 소프트웨어를 찾을수 있다. 앱스토어나 웹상에서 다운로드 받은것을 우린 프로그램이라고 부르는데, 비슷하게 도커허브에서 찾아낸것을 우리 컴퓨터에 다운로드해서 가지고 있는것을 이미지라고 한다. 그렇게 다운로드 받은 프로그램을 실행시키면 프로세스가 동작을한다. 비슷하게 이미지를 실행하는것을 컨테이너라고 한다. 하나의 프로그램이 여러 프로세스를 가질수 있는것 처럼 이미지도 여러 컨테이너를 가질 수 있다. 도커 허브에서 이미지를 다운 받는 행위를 p..
컨테이너 기술은 도커만의 기술이 아니라 리눅스 운영체제의 기술이다. 그래서 두 가지 사항들을 생각해 볼 수 있는데, 도커 위에서 돌아가는 컨테이너, 그리고 컨테이너 안에서 동작하는 앱들은 리눅스 운영체제에서 동작하는 앱들이다. 그렇다면 자신의 컴퓨터의 운영체제가 리눅스가 아니라면 도커를 쓸 수 없는 것일까? 두 번째 물음에 답은 '아니다!' 이다. 일단 도커의 컨테이너를 사용하려면 리눅스 환경이 필요한건 맞다. 때문에 컴퓨터에 가상머신을 깔고 그 가상머신에 리눅스를 깐다면 리눅스 위에서 도커를 사용할 수 있는것이다. 그러나 사용자가 가상머신을 깔고 리눅스 운영체제를 올리는것은 상당히 귀찮은 작업일 것이다. 때문에 도커는 리눅스 환경이 아니면 자동으로 가상머신을 만들고 그 위에 리눅스를 올려준다!! 그러나..
토이 프로젝트를 거진 다 끝내고 배포하는 단계를 앞두고 있는데, 과거엔 AWS EC2에 nginx를 이용해서 배포해봤었다. 이번에는 공부를 목적으로 새로운 방법을 도입해보고 싶었고 요즘 핫(?) 한 도커를 공부해보고 싶었다. docker 카테고리는 생활코딩에서 배운내용을 스스로 따라하는 과정을 담았다. 어플리케이션을 개발하기 위해서는 운영체제에 많은 소프트웨어를 깔아야 한다. 웹서버, 데이터베이스 그리고 자바 언어를 사용한다면 JVM도 필요하다. 이런 설치작업들이 여간 까다로운 것이 아니다! 과거에 공부한다고 apt같은 패키징 관리 툴 없이 수동으로, 배포에 필요한 앱들을 설치해봤는데 여간 힘들일이 아니었다. 웹서버를 만든 사람이 컴퓨터를 여러대 구매해서 적당한 운영체제를 깔고 그 위에 웹서버나 데이터 ..