[출처] 왕초보도 따라하는 도커 기초 1 도커와 컨테이너 소개
재즐보프님의 유튜브 강의를 보며 공부를 위해 남기는 글입니다.
도커(Docker) 란?
- 컨테이너 기술을 지원하는 다양한 프로젝트 중에 하나
- 컨테이너 기술을 이전에도 있었으나 도커로 인해 알려짐
- 컨테이너 기술의 사실상 표준
- 2014 가장 인기 있는 클라우드 오픈 소스 2위(리눅스 재단 발표)
- 다양한 운영체제에서 사용 가능(리눅스, 윈도우, MacOS)
- 애플리케이션에 국한 되지 않고 의존성 및 파일 시스템까지 패키징하여 빌드, 배포, 실행을 단순
- 리눅스의 네임 스페이스와 cgroups와 같은 커널 기능을 사용하여 가상화
- 도커는 다양한 클라우드 서비스 모델과 같이 사용 가능
- 이미지: 필요한 프로그램과 라이브러리, 소스를 설치한 뒤 만든 하나의 파일
- 컨테이너: 이미지를 격리하여 독립된 공간에서 실행한 가상 환경
도커 설치
CentOS
yum -y install docker
Ubuntu
apt install docker.io
도커 레지스트리
도커 레지스트리에는 사용자가 사용할 수 있도록 데이터베이스를 통해 Image를 제공해주고 있음 누구나 이미지를 만들어 푸시할 수 있으며 푸시된 이미지는 다른 사람들에게 공유 가능
도커 퍼블릭 레지스트리 검색 및 확인
해당 사이트에서 원하는 이미지를 다운받을 수 있다. (회원가입하는 것을 추천)
도커 명령어로 검색
sudo docker search tomcat
tomcat은 예시로 든 서비스 이름이고 원하는 서비스 입력하면 된다. (ex. mysql, mongo, nginx, php, apache 등)
도커 이미지 다운로드하기
sudo docker pull tomcat
로컬 시스템에 있는 도커 이미지확인하기
sudo docker images
도커 컨테이너 라이프 사이클 (중요하다 생각함)
명령어
|
실행 내용
|
예제
|
PULL
|
도커 레지스트리에서 이미지 내려 받기
|
docker pull gasbugs/http-go
|
PUSH
|
도커 레지스트리에 이미지 업로드하기
|
docker push gasbugs/http-go
|
RMI
|
이미지 삭제
|
docker rmi gasbugs/http-go
|
CREATE
|
이미지를 사용해 도커 컨테이너 생성
|
docker create --name http-go gasbugs/http-go
|
COMMIT
|
컨테이너의 모습을 이미지로 생성
|
docker commit http-go gasbugs/http-go
|
RM
|
컨테이너 삭제
|
docker rm http-go
|
START
|
컨테이너의 프로세스를 시작
|
docker start http-go
|
STOP
|
컨테이너 프로세스 중지
|
docker stop http-go
|
도커 이미지 삭제
sudo docker rmi consol/tomcat-7.0
톰캣 컨테이너 생성
sudo docker run -d --name tc tomcat
- run 과 start는 다르다. run은 톰캣 생성 및 실행이다(pull > create > start 모두 실행). 서비스를 단순 재시작만 하고싶다면 restart 또는 stop 후 start를 해야한다. run으로 하게되면 새로운 컨테이너 생성하고 그 컨테이너를 실행하게 된다.
> 라이프사이클을 보면 이해할 수 있다.
컨테이너 생성
docker create -p 27017:27017 --name mg mongo
-p : 포트를 설정하는 옵션입니다. 앞 포트는 컨테이너 내부포트 뒤 포트는 외부에 공개되는 포트입니다.
생성 후 실행, 프로세스 확인 과정입니다.
실행중인 컨테이너 확인
sudo docker ps // 톰캣 컨테이너 확인 (실행 중인 것만 보임)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f6e513b399a6 tomcat "catalina.sh run" 27 seconds ago Up 26 seconds 8080/tcp tc
> CONTAINER ID 인 f6e513b399a6를 입력하여 서비스 시작, 중지, 삭제를 할 수 있다. name을 지정하면 지정한 name으로도 시작, 중지를 할 수 있다.
- docker ps : 현재 실행 중인 프로세스는 tomcat만 보인다.
- docker start nx : nginx를 실행
- docker ps : 실행 된 nginx가 보인다.
모든 컨테이너 확인
sudo docker ps -a // 모든 컨테이너 확인
컨테이너 중지
sudo docker stop f6e513b399a6 // 컨테이너 실행 중지
> CONTAINER ID 입력 또는 name 입력
컨테이너 삭제
sudo docker rm f6e513b399a6 // 컨테이너 삭제 f6e513b399a6
> CONTAINER ID 입력 또는 name 입력