사실 도커에 대해선 여러번 공부를 했었는데 알아듣지 못함으로써,, 실패를 계속 했다.
다시 한번 도전해보자.
: Go 언어로써, 리눅스 컨테이너 기반 오픈소스 가상화 플랫폼이다.
서버 관리자 입장에서 CPU 사용률이 현저히 낮은 서버들을 그대로 두면 리소스 낭비, 돈 낭비이다. 모든 서비스들을 한 서버 안에 올리면 안정성이 바닥을 칠것이다.
그리하여 안정성을 높이고 리소스도 최대한 활용할 수 있는 방법으로 등장한 것이 서버의 가상화
컨테이너는 가상화 기술 중 하나로, 기존 OS 를 가상화 시키던 것과 달리 OS 개발의 가상화로 프로세스를 격리시켜 동작하는 방식으로써 기존 OS 를 가상화하는 것과 프로세스를 격리시켜 동작하는것은 차이가 있다.

기존에 사용하던 VM 같은 경우 가상 머신마다 운영채제가 있고, 그 위에 애플리케이션이 있다. 반면, 컨테이너 구조는 호스트 운영체제 위에 컨테이너가 있고 그 위에 애플리케이션이 존재한다. 구조가 간단해짐으로써, 컨테이너 구조가 성능을 높인다.
컨테이너를 사용할때 도커를 사용하면 간단한 명령으로 컨테이너 이미지 를 만들고 저장할 수 있다. 도커를 설치한 호스트에 컨테이너 이미지 를 다운로드해서 컨테이너를 실행 시킬 수 있다.
컨테이너를 실행 시킬 수 있는 실행파일, 설정값 등을 가지고 있는 것으로, 이미지는 상태값을 가지지 않고 변하지 않는다. 아래 그림과 같이 이미지를 컨테이너에 담고 실행시킨다면, 해당 프로세스들이 동작할 것이다.
도커에서는 도커이미지를 통해 컨테이너를 생성할 수 있다. 도커 이미지를 사용해 이미지에 설정해둔 대로 컨테이너의 구성환경을 적용할 수 있다.
이미지 목록 보기
$ sudo docker images
이미지 검색
$ sudo docker search [이미지 이름]
이미지 받기
$ sudo docker pull [이미지 이름]:[버전]
이미지 삭제
$ sudo docker rmi [이미지 id]
컨테이너 목록 보기
$ sudo docker ps
컨테이너 실행
$ sudo docker run [options] image[:TAG|@DIGEST] [COMMAND] [ARG...]
컨테이너 시작/재시작
$ sudo docker start [컨테이너 id 또는 name]
$ sudo docker restart [컨테이너 id 또는 name]
컨테이너 접속
$ sudo docker attach [컨테이너 id 또는 name]
컨테이너 정지
$ sudo docker stop [컨테이너 id 또는 name]
컨테이너 삭제
$ sudo docker rm [컨테이너 id 또는 name]