웹 개발을 하기 위해서는 운영체제에 여러 소프트 웨어를 설치해야함
예를 들어, 웹 개발을 하기 위해서는 Web server나 database 등을 깔아서 나의 소프트웨어를 만들어가야 함 → 귀찮고 한번에 잘 되기 힘듬
• 만약에 MyApp, WEb server, Database를 각각 운영을 한다면 그 OS를 위한 컴퓨터가 한대씩 필요함
• 하지만 내 컴퓨터에 가상으로 컴퓨터를 만들고 그 위에 운영체제를 설치하고 거기에 Web server를 설치한다면?
→ 그러면 별도의 컴퓨터가 필요 ❌
(Vmware, Virtualbox가 그렇게 만들어 줌)
• 단점은 이렇게 하면 운영체제가 용량도 큰데, 그 위에 운영체제를 또 만들어서 느려짐
• 그러면 한대의 컴퓨터 안에서 각각의 App을 각각 격리된 상태에서 실행시키면?
(Linux OS에 이렇게 실행 할 수 있게 내장되어 있음)
→ 이때 운영체제가 설치 된 컴퓨터를 주인이라는 의미에서 host
, 그리고 host에서 실행되는 각각의 격리된 실행환경을 Container
• 각각의 Container에는 운영체제 전체가 설치 된 것이 아니라,APP을 실행하는데 필요한 library와 실행파일들만 포함
→ 이렇게 하면 이미 존재하는 운영체제를 공유해서 무엇인가를 따로 설치할 필요 ❌
→ 운영체제가 하나라서 속도도 느려지지 않음, 저장 장치의 용량도 아낄 수 있음
Container 기술을 이용해서 이런걸 쉽게 해주는 소프트웨어가 DOCKER
Docker는 부두에서 컨테이너를 다루는 노동자를 의미
• docker와 같은 container 기술은 Linux 운영체제 기반임
→ docker 위에서 돌아가는 container, 그리고 그 위에서 동작하는 각각의 App들은 리눅스 운영체제에서 돌아가는 App들임
→ 만약에 본인 컴퓨터가 linux 운영 체제가 아니라도 docker 사용 가능
(가상 machine을 설치하고, 그 가상 machine 위에 linux 운영체제를 설치하면 그 위에서 docker와 같은 container기술 사용가능 → 이마저도 docker가 알아서 가상 machine을 만들어서 그 위에 linux 만들어줌)
1️⃣ 홈페이지 접속: https://www.docker.com/ → 문서 페이지(Devleopers) → Dowunload and install
2️⃣ 본인 운영체제에 맞는거 선택해서 다운로드
3️⃣ 설치 후 docker dashboard 클릭
→ docker를 그래피컬한 환경에서 제어할 수 있도록 도와주는 환경
→ 하지만 명령어를 사용해서 제어하는 것이 docker의 full power를 발휘할 수있는 수단
4️⃣ 명령어로 docker사용 시 Terminal창 사용법
docker images입력하고 에러가 나지 않는다면 docker 성공적으로 실행한것!
만약 위 명령어 쳤는데 제대로 안나온다?
→ docker 회원가입하고 로그인 했는지 확인 하기!
• 만약 우리가 어떤 프로그램이 필요하다면 App store에서 찾음. 그것과 비슷하게 docker hub라고하는 레지스트리라 불리는 서비스에서 필요한 소프트웨어를 찾을 수 있음
• App store에서 다운로드 받아서 컴퓨터에 저장한것을 programm
이라고 함 → 프로그램을 실행하는 것을 process
• docker hub에서 찾아낸 것을 사용자의 컴퓨터에 다운로드 받아서 가지고 있는 것을 image
라고 함 → image를 실행하는 것이 container
라고 함
• 프로그램이 여러개의 process를 가질 수 있는것 처럼, image도 여러개의 container를 가질 수 있음
• docker hub에서 image를 다운받는 행위를 pull
, image를 실행시키는 행위를 run
이라고 함
→run
을 하게 되면 image가 container가 됨 → 그리고 그 container가 실행 되면서 해당 container 안에 있는 실행 되도록 조치되어 있는 프로그램이 실행되면서 user가 해당 프로그램을 사용할 수 있게 됨
1) dockerhub로 들어와서 우측 상단의 Explore 클릭
2) 왼쪽 상단의 Containers 클릭
→ 인기있는 컨테이너가 있고, 왼쪽에 카테고리를 통해 원하는 소프트웨어가 설치된 container를 찾으면 됨
3) 아파치 웹서버가 설치 된 container를 찾을때는?
→ dockerhub에서 아파치 웹 서버는 httpd
라는 이름을 가짐
→ httpd
로 검색
❈ 여기서 Official Image는 docker에서 공식적으로 관리하는 믿을 수 있는 image라는 뜻
4) image pull 받기
→ 여기서는 docker pull httpd
라는 명령어를 통해서 해당 image를 다운 받을 수 있음
→ 하단에 httpd에 관한 사용 설명서가 기재 되어있음
5) 내 컴퓨터에 image 받기
1) docs.docker.com으로 이동
→ 그중에 Reference 클릭
→ 그리고 Command-line reference
클릭하고, Docker CLI(docker)
클릭
→ docker pull
클릭하면 형식이 나옴
→ NAME
에 Image이름 적으면 사용가능
2) 명령어 입력
docker pull httpd //이렇게 terminal창에 입력하면 httpd를 레지스트리로부터 다운로드 받기 시작
3) 이미지 잘 다운받았는지 확인
docker images // 이렇게 입력했을때 httpd image가 나오면 잘 다운받은것
4) GUI에서 확인 하는 방법
(mac이나 window의 경우 docker desktop이 있을거임)
dash board 클릭하면 하단 화면이 나옴 여기서 Images
를 클릭
→ 그러면 우리가 가지고 있는 image들을 보여줌
(httpd 설치된거 확인 가능)
출처: 생활코딩 유튜브