이번시간에는 도커가 설치된 윈도우에서 우분투 컨테이너의 웹에 접속해보겠습니다.

우분투 서버관리 / 웹 배포 등을 위한 기본적인 단계라고 생각하면됩니다.

 

우선 window powershell 또는 도커 데스크탑 CLI모드에 들어갑니다.

 

1. 프로세스 상태 확인: docker ps -a (중지 상태인 컨테이너를 포함한 모든 컨테이너를 출력해줌)

* docker ps만 입력하면 실행 중인 컨테이너 목록만 출력됩니다.

 

2. 컨테이너 실행: docker start ubuntu_server(컨테이너 이름)

3. 원격 접속: docker attach ubuntu_server

 

우분투 컨테이너 이름이 ubuntu_server일 때 다음과 같이 하나의 명령문으로 실행할 수도 있습니다.

docker exec -it ubuntu_server bash   or  docker exec -it ubuntu_server /bin/bash

 

그리고 우선적으로 아래 명령어로 우분투가 어떤 ip를 갖고 있는지 확인해봅니다.

ifconfig

 

실행이 안됩니다.

우리가 설치한 우분투는 저번에도 언급했듯이 빈껍데기 그 자체라서 모든 필요 패키지를 설치해줘야합니다..

아래 명령어로 net-tools를 설치해준 뒤 다시 ifconfig명령어를 입력해봅니다.

 

apt-get install net-tools

 

eth0 네트워크 인터페이스에 내부망 주소 172.17.0.2가 할당 되어있는 것을 확인할 수 있습니다.

도커 컨테이너를 실행하면 기본적으로 컨테이너의 네트워크 환경은 NAT으로 설정되어있습니다.

NAT내부망에서 동작하기 때문에 외부에서 컨테이너 내부로 접속이 불가능합니다.

이는 VM방식과 동일합니다. Vmware나 Virtual Box에서 기본적으로 네트워크 환경이 NAT으로 설정되어 있어(물론 변경 가능) 호스트에서 VM 내부 OS로 , 그리고 그 반대의 경우에도 서로 ip접속이 불가능 했습니다.

이를 Bridged모드로 변경하여 호스트와 통신할 수 있습니다. (같은 공유기에 연결되어 있을 경우)

이는 포트포워딩 방식을 이용한 것인데, 우리 실습 과정에도 포트포워딩을 통해 우분투 컨테이너와 호스트가 통신할 수 있습니다.

 

이제 호스트9000번 포트와 컨테이너 80포트를 바인딩하고 우분투에 아파치를 설치하여 호스트에서 접속해보겠습니다.

호스트에서 바인딩 할 포트넘버는 사용가능한 포트, 즉 사용중이지 않은 포트를 사용해야합니다.

이는 CMD창에서 netstat명령어로 확인할 수 있습니다.

 netstart명령어는 자신의 컴퓨터와 연결된 모든 네트워크 연결을 보여줍니다.

말 그대로 현재 연결된 네트워크만 보여주므로 아래 명령어처럼 옵션을 붙여서 사용가능한 포트를 확인합니다.

 

netstat -ano 명령어로 확인할 수 있습니다.

-a: 모든 포트 표시

-n: ip주소:포트 형태로 표시

-o: PID(프로세스 ID) 표시

뭐가 엄청 많이 나오는데, 상태가 LISTENING일 경우 현재 해당 프로세스가 연결대기 중인 상태이고  ESTABLISHED일 경우 연결되어 사용 중인 포트입니다. LISTENING, ESTABLISHED상태의 포트는 사용할 수 없기 때문에 나열된 포트 숫자 중에서 중간에 숫자 범위에 포함되는 아무 포트나 사용하거나 LISTENING 상태인 프로세스를 kill해서 해당 포트를 사용하면됩니다.

그냥 깔끔하게 LISTENING 상태의 네트워크 정보만 알고 싶으면 아래 명령어를 사용하면됩니다.

netstat -ano | grep "LISTEN"

이제 포트 하나(9000번)를 선택하여 우분투 포트와 바인딩 시켜보겠습니다.

* 위 이미지에 나와있지 않은 포트를 사용하는 겁니다.

 

다시 도커로 돌아와서 새 컨테이너를 생성합니다.

이미 생성한 컨테이너가 있으면 다시 생성하여 설정해야 하므로 새 컨테이너를 생성하여 포트포워딩 해주겠습니다.

아파치 웹서버를 설치할건데, 아파치는 기본 포트가 80이므로 80으로 바인딩해주겠습니다.

* 아파치 웹은 기본 포트가 80이기 때문에 포트포워딩할 때 다른 포트넘버를 넣어주면 정상작동이 되지 않 습니다.

컨테이너 실행-> 접속단계입니다. 컨테이너 이름은 ubuntu_apache로 지어주었습니다. 9000번 포트를 컨테이너 80번 포트로 포워딩 해보겠습니다.

docker run -it --name ubuntu_apache -p 9000:80 ubuntu /bin/bash

"-p 9000:80" 이 눈에 띄는데, 호스트의 9000번포트를 컨테이너의 80번포트로 바인딩 시켜주는 것입니다.

 

새로운 컨테이너므로 똑같이 빈 껍데기 이므로 패키지를 업데이트 해주고 아파치2를 설치합니다.

나중에 ip를 확인할 일이 있을테니 net-tools 도 설치해주었습니다.

apt-get update

apt-get install net-tools

 

ifconfig로 ip를 확인해보니  172.17.0.3으로 할당되어있습니다. 저번에 설치한 ubuntu_server 컨테이너의 아이피는 172.17.0.2였는데, 도커 컨테이너 내부 IP가 172.17.0.x 형태로 할당 됨을 알 수 있습니다.

아파치를 설치합니다.

apt-get install apache2

 

아파치 설치 중간에 지역을 선택하라고 나오면 Asia-> Seoul로 설정하면됩니다.

 

이제 아파치의 버전 정보와 현재 상태를 확인합니다.

apachectl -version

service status apache2

그리고 실행을 시켜줍니다. 

service apache2 start (종료는 stop, 재시작은 restart)

 

systemd패키지가 없어서 systemctl status apache2 명령어는 인식이 안되므로, 위 명령어로 실행해주세요.

 

* 최초 실행 시 아래 에러 문구가 뜰 수 있습니다.

ah00558: apache2 could not reliably determine the server's fully qualified domain name

 

오류 내용을 검색해보니 접속할 도메인 이름을 설정하라는 건데, 지금은 외부->도커 웹 연결만 확인하면 되므로 굳이 지정해줄 필요는 없습니다. 다시 service apache2 start 명령어를 입력하면 정상 실행됩니다.

이제 우분투 컨테이너의 웹 브라우저와 호스트의 크롬에서 아파치 실행을 확인해봅니다.

Docker Desktop을 키고 컨테이너 목록에서 오른쪽에 있는 첫번째 아이콘을 입력하면 됩니다.

 

localhost:9000으로 기본 입력되어있고 아파치 디폴트 페이지가 잘 보입니다. 숫자9000은 아까 호스트 포트를 컨테이너80번에 바인딩시켜준 번호입니다.

windows powershell을 하나 더 띄워서 ps -a명령어를 입력하면 포트포워딩 정보를 알 수 있습니다.

 바인딩 할 때 프로토콜 옵션을 조정해주지 않으면 기본 tcp프로토콜이 적용됩니다.

호스트 크롬창에서 똑같이 입력해도 결과는 같습니다. window에서 cmd를 띄워서 호스트 ip를 확인한 다음,

크롬에 ip:9000을 입력해도 똑같이 아파치 화면이 나오는 것을 확인할 수 있습니다.

ex)192.168.122.1:9000

 

아파치 웹서버를 끄고싶다면 터미널에 service apache2 stop 명령어를 입력하시면 됩니다.

 

오늘 우리가 한 내용을 아래 그림으로 요약할 수 있습니다.

 

이제 윈도우(호스트)에서도 우분투 컨테이너 웹서버에 접속할 수 있게 됐습니다!

 

 

 

 

 

 

 

이번시간에는 저번시간에 실습한 우분투 이미지파일을 도커 허브에 업로드 해보겠습니다.

 

도커 허브에 가입하면 클라우드에 저장소를 생성하여 도커 이미지를 저장할 수 있고 필요 시 로컬에 다운로드하여 이용할 수 있습니다. 

도커 이미지 파일 전용 깃허브라고 생각하면 편하고, 사용 방법도 비슷합니다.

다양한 오픈소스 이미지파일이 존재하여 다른 개발자들의 이미지 파일을 이용할 수 있습니다. 

로컬PC 도커에 많은 이미지를 설치해놓으면 나중에 저장공간에 대한 부담도 생겨날 수 있으므로 클라우드에 업로드 시켜놓는 것도 좋은 방법인 것 같습니다.

(퍼블릭 업로드 시 저장 공간의 제한이 없는 것 같습니다.)

 

우선 https://www.docker.com/ 에서 회원가입을 합니다. Docker ID는 닉네임이라고 생각하면됩니다.

그다음, 홈페이지 상단의 Repositories를 클릭한 뒤 Create Repository를 클릭하여 레포지토리 이름을 설정해줍니다.

무료 버전은 공개 저장소는 무제한이지만 사설 저장소는 1개만 생성할 수 있으므로 그냥 public으로 생성해줍니다.

저는 레포지토리 이름을 first_ubuntu로 저장했습니다.

아래와 같이 저장소가 생성된 것을 확인할 수 있습니다.

 

이제 이 저장소에 도커 이미지를 업로드 해 보겠습니다.

windows powershell에서 아래 명령어로 로그인합니다.

docker login

 

저번에 실습한 ubuntu_server 이미지를 업로드 해 보겠습니다.

업로드 하는 과정을 검색해봤는데 기존에 있는 이미지파일을 바로 업로드 할 순 없다고 합니다.

그래서, 고유한 이름으로 새로 생성해서 업로드해야합니다.

 

계속 진행하겠습니다. 원본 이미지 이름은 docker ps -a 명령어를 입력 후 NAMES로 확인할 수 있습니다.

이 때 양식을 잘 맞춰주어야합니다. "도커ID"/"레포지토리 이름"이 들어가야합니다.

양식은 아래처럼 작성해줍니다. 아래 결과로 jow1025/first_ubuntu라는 이름의 이미지가 생성됩니다.

docker commit ubuntu_server jow1025/first_ubuntu:1.0

':' 뒤의 숫자 1.0은 태그 이름입니다. 

* 위의 이미지에서 "editor_vim" 커밋메시지가 반영이 안되는 것 같습니다. 

그냥 docker commit ubuntu_server jow1025/first_ubuntu:1.0 으로 입력해주세요.(본인 설정에 맞게)

 

- 원본 컨테이너 이름: ubuntu_server

- 새로 생성할 이미지: jow1025/first_ubuntu:1.0

- jow1025: 회원가입 때 기입한 도커 ID 

- first_ubuntu: 도커 허브 레포지토리 이름

- 1.0 : 태그이름, 이미지 id를 쉽게 식별하기 위한 목적

 

생성 후 docker images 명령어를 통해 새로 생성된 이미지를 확인합니다.

이름은 jow1025/first_ubuntu로, TAG는 1.0으로 설정되어 있습니다. 

이제 도커 허브에 업로드 하여 확인합니다.

docker push jow1025/first_ubuntu:1.0

도커 허브에서 확인하면 잘 업로드 된 걸 확인할 수 있습니다.

 

이제 도커 허브에 저장된 자기의 도커 이미지를 로컬 PC로 다운받아 보겠습니다. 간단하므로 방법만 설명하겠습니다.

1. 로그인: docker login

2. 이미지 다운: docker pull jow1025/first_ubuntu:1.0

3. 이미지 확인: docker images 

 

 

* 부가 설명

===================================================

우분투에 설치된 도커 이미지를 삭제하는 방법

1. docker images 명령어로 Image ID 확인

2. docker rmi "image id"로 삭제

ex) docker rmi 59c15f3a271e(태그3.0 이미지 삭제)

 

3.결과 확인

 

 

* 컨테이너 삭제는 docker ps 또는 docker ps -a 명령어로 컨테이너 id를 확인한 뒤

docker rm "컨테이너ID"로 삭제할 수 있습니다. 

이미지 삭제/ 컨테이너 삭제 모두 도커 데스크탑 GUI에서 손쉽게 삭제할 수 있습니다.

(계속 windows powershell을 쓰고 있으니 명령어로 제어하고 있는 것임)

=============================================================

 

이상으로 우분투 이미지의 도커허브 업로드/다운로드에 대한 설명을 마치겠습니다.

 

이번시간에는 도커에 우분투를 설치해보겠습니다.

우분투를 설치해서 기존에 제가 사용했던 vmware 리눅스 서버/ AWS ec2처럼 사용할 수 있습니다.

 

windows powershell을 실행합니다.

 

docker명령어로 저번에 설치한 도커의 버전을 한번 확인해봅니다.

docker version을 입력하면 더 자세한 내용을 확인할 수 있습니다.

 

이제 도커 우분투를 설치해보겠습니다. 우분투 OS를 설치하는 걸까요? 

 

아닙니다. 도커 이미지는 도커 컨테이너를 구성하는 파일 시스템과 실행 애플리케이션을 하나로 합친 것으로, 컨테이너를 생성하는 일종의 템플릿 같은 역할을 합니다.

도커 컨테이너는 도커 이미지를 기반으로 생성되며 실제 실행되는 상태를 의미합니다.(격리된 프로세스의 실행)

 

쉽게말해 이미지는 실행파일을, 컨테이너는 프로세스를 의미합니다.

 

그렇기 때문에 제일 먼저 우분투OS를 설치하는게 아니라 우분투 이미지를 설치하는 것입니다.

windows powershell에서 아래 명령어를 입력해줍니다. 해당 명령어를 통해 제일 최신의 우분투 버전을 설치하게됩니다.

docker pull ubuntu

docker images 명령어로 설치된 이미지를 확인합니다.

72MB의 우분투 이미지가 설치되었음을 확인할 수 있습니다.

도커 데스크탑 GUI로도 확인할 수 있습니다. 오늘 설치했는데 15일전에 생성되었다고 나오네요...??

이제 실제로 실행하기 위해 이미지를 컨테이너로 생성해 줄 차례입니다. 아래 명령어를 입력합니다.

2가지 방법이 있는데 편하신 방법대로 하면됩니다. 2번 방법이 훨씬 편하긴합니다.

 

1. 생성 후 실행하기

 1) 생성: docker create -i -t --name ubuntu_server ubuntu

 2) 이미지 상태 확인: docker ps -a 

 STATUS가 Created로 되어있을 겁니다.

 3) 실행: docker start ubuntu_server

 4) 우분투 접속: docker attach ubuntu_server(우분투 커맨드 창으로 넘어감)

2. 생성과 동시에 실행하기(이게 간단해보임)

 1) docker run -i -t --name ubuntu_server ubuntu /bin/bash

 명령어 입력 후 우분투 터미널로 이동합니다. 

 

부가설명)

===============================================

 -i: stdin(상호 입출력)

 -t: tty(터미널)을 활성화

 즉, 실행될 Bash셸에 입출력을 하겠다는 의미(명령어를 입력하면 우분투 커맨드 창으로 넘어감)

 - ubuntu /bin/bash: 우분투 이미지 안의 bin/bash를 실행

 - ubuntu_server: 설정한 컨테이너 이름(자유롭게 설정)

 - 2번 방법은 최초에 생성과 실행을 동시에 해줄 뿐이고 다음부터 실행할 때는 1번 방법의 3번 명령어부터 실행해야합니다.

 - 컨테이너 종료: exit (우분투 쉘에 있을 때 )

 - 컨테이너 종료: docker stop ubuntu_server (widows powershell에 있을 때)

===============================================

 

도커 데스크탑 GUI와 windows powershell에서 컨테이너의 실행 상태를 확인할 수 있습니다.

아래 이미지에 나와있는 첫번 째 컨테이너는 저번에 실행한 튜토리얼 컨테이너입니다.

윈도우 쉘에서는 docker ps -a명령어로 컨테이너 상태를 확인할 수 있습니다.

ubuntu_server라는 이름의 컨테이너가 방금 실행되었음을 확인할 수 있습니다.

 

이제 우분투 터미널에서 우리가 설치한 우분투 버전을 확인해 보겠습니다.

현재 설치된 우분투 이미지가 20.04.2 LTS 버전임을 확인할 수 있습니다!

 

현재 우분투 쉘은 말그대로 정말 아무것도 없는 상태라서 필요한 패키지를 다운받아서 사용해야합니다.

기본적인 에디터 조차 설치가 안되어있네요..

패키지 설치 전에는 항상 두 명령어를 먼저 실행해줍니다. (sudo 명령어도 안먹히므로 빼고 입력해줍니다.)

apt-get update

apt-get upgrade

 

기본적인 에디터를 설치하는 것으로 이번시간을 마치겠습니다.

저는 평소에 nano에디터를 사용했는데 vi/vim을 공부해볼 겸 vim 에디터를 설치해주었습니다.

apt-get install vim

제가 블로깅 하기 전에 이미 깔아놔서 아래와 같은 결과가 나옵니다.

터미널에 vim을 입력하면 vim창이 나타납니다.

 

이상입니다.

 

이번에는 직접 도커를 설치해보도록 하겠습니다.

도커 홈페이지에 접속합니다.

https://www.docker.com/

 

Empowering App Development for Developers | Docker

Learn how Docker helps developers bring their ideas to life by conquering the complexity of app development.

www.docker.com

상단 배너에서 Developers -> Getting started를 클릭합니다.

그리고 Docker Desktop 윈도우 버전을 다운로드합니다.

 

중간의 체크박스들은 모두 체크해주시면 됩니다. 설치에 어느정도 시간이 걸리고, 설치 완료 후 재부팅해줍니다.

 

재부팅 하고나면 아마도 아래 이미지 처럼 오류창이 뜰 것 입니다. (안떴다면 도커 실행)

저의 윈도우 환경은 window10 Home인데 대부분 아래 오류가 뜨는 것 같습니다.

 

도커는 리눅스 커널 기능을 이용하여 프로세스를 격리시켜 독립적으로 실행될 수 있도록 도와주기 때문에

WSL(Windows Subsystem for Linux, 리눅스용 윈도우 하위 시스템)라는 프로그램이 필요합니다. WSL2는 WSL보다 대폭 개선된 버전이라고합니다.

 

Window 10 Home의 경우 위 이미지와 같은 오류가 계속 뜰텐데, 이를 설치해주어야합니다.

window 검색창에 windows powershell을 관리자 권한으로 실행합니다.

그리고 아래 순서대로 명령어를 입력해줍니다.

1. 리눅스 서브시스템 활성화

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

2. 가상 머신 플랫폼 기능 활성화

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

3. x64용 WSL2 리눅스 커널 업데이트 패키지 설치

wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 

 

4. 도커 재시작

 

이제 도커가 작동되는지 튜토리얼로 확인해봅니다. start버튼을 누르면 아래와 같은 화면이 뜨게됩니다.

위에 나온 명령어를 windows powershell에 입력해줍니다.

도커의 containers/apps에 아래 처럼 컨테이너가 정상적으로 러닝되고있음을 알 수 있습니다.(이름은 제각각)

그리고 이제 윈도우 크롬에서 127.0.0.1을 입력해봅니다. 아래와 같이 도커 튜토리얼 사이트가 나와야 정상입니다.

 

도커에서 방금 실행한 튜토리얼 컨테이너가 어떤 환경으로 구성된건지 보겠습니다.

도커 컨테이너 창에서 CLI모드로 입장합니다.

cat etc/issue명령을 통해 리눅스 3.13버전의 환경임을 알 수 있습니다.

 

여기까지가 기본 설치 단계이고 다음시간에는 도커에 우분투를 설치해보겠습니다.

 

도커를 사용하는 방법에 대해 정리한 글입니다.

 

도커란?

도커는 컨테이너 기반의 가상화 오픈소스 플랫폼입니다.

위키백과를 참고하면, 도커는 리눅스의 응용프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화 하는 오픈소스 프로젝트라고합니다.

 

이게 대체 무슨소릴까..?

 

예를들어 Host OS위에서 다른 OS를 사용하고싶을 때 많은 분들이 아마 Vmware나 Virtual Box등을 이용해서 새로운 OS를 올려놓고 사용해보셨을겁니다.

이 방식은 OS전체를 가상화 하는 방식으로, 기존 OS와 완전히 다른 하나의 완전하고 독립적인 OS를 생성하는 방식인데요. 하지만 이 방식은 기본적으로 Host OS의 물리적 자원을 할당받아서 사용되기 때문에 속도도 느리고 새로운 운영체제를 설치하는 것이기 때문에 소모되는 자원, 용량등이 매우 큽니다.

실제로 vmware위에 우분투나 라즈비안 등의 OS를 설치할 때 이미지파일 용량도 크고 다운받는 시간도 오래걸리며 vmware 설정에서 호스트 자원을 얼마나 할당해줄 것인지를 설정하는 옵션이 있습니다.

실제로 제가 rpi에 설치한 이미지 파일이 5gb가 훨씬 넘네요. 이 자체로 가상머신의 사용은 시스템에 큰 부담으로 작용합니다.

 

이를 보완하기 위해 등장한 개념이 '컨테이너' 입니다. 각 컨테이너는 하나의 '격리된 프로세스 공간' 입니다.

컨테이너는 os를 가상화하여 host os와 커널을 공유하면서 이를 '프로세스'로 간주하여 격리된 환경에서 실행하는 개념입니다. 하드웨어 전체를(물리적 자원) 가상화 하는 가상머신 방식과 달리 os끼리 완전 독립되지 않고 서로 커널을 공유하는 방식이기 때문에 가상머신보다 훨씬 부담도 적고 속도도 빠르며 자원 할당량도 적은 장점을 가집니다.

CPU, 메모리등의 자원을 프로세스가 필요한 만큼만 추가로 사용하기 때문에 성능 상 손실이 거의없습니다.

도커는 컨테이너 기반의 플랫폼입니다. 

위 이미지를 보면, 오른쪽의 가상머신은 Hypervisor라는 하드웨어에서 시스템 OS와 리소스를 분리해 가상머신에 할당하여 구동하는 소프트웨어위에서 각각의 독립된 OS가 실행됩니다. Host OS의 자원을 공유해서 사용되기 때문에 이들이 시스템 자원을 많이 잡아 먹어서 VM위에 여러개의 OS를 설치해서 사용하는 건 정말 안좋겠죠..

  

하지만 왼쪽에서 보이듯 도커의 컨테이너 구조는 Host위에 Docker를 설치하여 그 위에 각 서비스 환경을 컨테이너로 패키징하여 설치하고 운영하는 형태입니다. vm방식과 달리 다른 컨테이너와 OS 커널을 공유하므로 자원할당량도 적고 저장공간의 낭비가 덜합니다. 운영체제를 통째로 설치하는 게 아니라 이미지를 설치하는데, 이 안에 필요한 설정파일이 담겨 있습니다. 이 이미지에는 컨테이너를 실행하기 위한 모든 정보가 담겨 있습니다. 

 

도커로 리눅스 서버를 구축한다고 하면 리눅스 이미지를 다운받아 컨테이너를 생성하여 서버를 구축하면 됩니다. 

 

정리하자면 VM방식은 하드웨어의 리소스를 가상화하여 동작하는 것이고, 컨테이너 방식은 OS를 가상화하여 동작하는 방식입니다. 

 

도커의 장점은 다음과 같습니다.

1. 자원 낭비의 부담이 적다.

2. 실행 속도가 빠르다.

3. 배포 및 관리를 단순하게 해준다.

4. 컨테이너 이미지를 쉽게 공유해서 사용할 수 있다.

 

3번의 경우 우리가 예를들어 jsp, 스프링 등으로 웹서비스를 구축해서 AWS에서 배포한다고 할 때 도커를 사용하지 않으면 AWS에서 잘 실행되게끔 환경을 설정해줘야하는데, 도커를 사용하면 환경에 제약을 받지 않기 때문에 바로 실행할 수 있는 장점이 있습니다. 

 

4번의 경우 도커의 컨테이너 이미지를 공유할 수 있는 Docker Hub가 있어서 전 세계 개발자들의 검증된 이미지들을 쉽게 내려받고 본인의 이미지를 허브에 공유할 수 있습니다. (깃허브와 비슷합니다.)

실제 우분투 이미지를 다운받아 보니 175메가 정도 되는데 많은 이미지를 보유하게되면 저장공간의 부담이 생길 수 있으므로 이 허브에 이미지를 저장해놓고 필요할 때만 다운받아 사용하기도 합니다.

 

아직 컨테이너와 도커에 대해 잘 와닿지 않을 수도 있는데, 평소에 Vmware나 virtual box 등을 이용해서 다른 OS위에서 작업을 많이 해보신 분들은 아마 도커를 사용해 보시면 이걸 왜 써야 할지 감이 오실겁니다. 

 

전문적으로 배우고 블로깅 한게 아니기 때문에 더 정확한 개념에 대해 알고싶으시면 좀 더 정확한 레퍼런스를 참고해주셨으면 좋겠습니다. 

 

+ Recent posts