도커를 윈도우 10에 설치합니다.
우분투 이미지를 다운로드 하고 컨테이너를 만들어봅니다.
도커란 무엇일까?
Docker
부두 노동자
컨테이너를 다루는 것
- 도커는 이미지를 실행하고, 이미지를 저장 배포 한다.
- 도커는 서비스 운영 환경을 묶어 손쉽게 배포하고 실행하는
경량 컨테이너 기술
- 도커는
VM
이 아니다. - 도커는
가상화
를 하는것이 아니다. - 컨테이너에 가상 공간을 만들지만, 실행 파일을 호스트에서 직접 실행한다.
- 컨테이너 기술은 가상화가 아닌 프로세스를 격리 하는것이다.
가상화 기술
VM
은 완전한 컴퓨터를 설치한다.- 하이퍼 바이저 위에서
게스트 OS
가 생성된다. - 응답속도를 개선하기 위해서 호스트와 커널을 공유하는
반 가상화
기술이 생겼다.
가상화 기술의 한계
- 아무리 최적화를 해도
게스트 OS
가 필요하고, 오버헤드로 인한 성능 문제 를 극복하지 못한다. - 배포, 관리 기능도 많이 부족하다.
컨테이너
- 애플리케이션을 관련 라이브러리 및 종속 항목과 함께 패키지로 묶음
- 소프트웨어 서비스 구동을 위한 격리 환경을 마련해줌.
VM
과 다르게 하드웨어 스택을 사용하지 않음- 운영체제에서
가상화
를 실시하고, OS 커널에서 컨테이너를 직접 구동함 - 좀더 자세한 링크
도커의 특징
- 하이퍼 바이저 위치에
도커 엔진
이 있다.- 하지만 그 위에
게스트 OS
가 필요 없다.
- 하지만 그 위에
- 필요한 것만 설치한다 (용량 확보)
- 호스트와
System call
을 공유한다.- 호스트와 컨테이너 사이의 성능차이가 미미하다.
- 이미지 생성, 배포가 아주 용이하다.
- 베이스 이미지에서 바뀐 부분만 이미지로 만든다.
- 다른곳에서 바뀐 부분만 합쳐서 실행 시키면 된다.
도커 설치 준비
도커 다운로드 설치
- 도커를 공식 사이트 에서 다운로드 합니다.
- 도커를 설치하고 재부팅 후 도커를 실행시킵니다.
Power shell
에서docker -v
를 입력하여 도커가 잘 설치되었는지 확인합니다.
우분투 이미지 다운, 실행
- pull
docker pull ubuntu
를 입력해 최신 ubuntu를 다운 받습니다.tag
를 설정하지 않으면 디폴트로:latest
버전이 다운 됩니다.
docker images
를 입력해 설치된 이미지를 확인합니다.
컨테이너 생성
- run
docker run -i -t --name HelloDocker ubuntu /bin/bash
를 입력합니다.ubuntu /bin/bash
우분투 이미지 안의 bin/bash 를 실행합니다.-i -t
interactive, Pseudo-tty, 실행된 Bash에 입출력을 합니다.--name HelloDocker
컨테이너의 이름을 HelloDocker로 설정 합니다.
- 컨테이너 내부에서
home
에다가Yoonsung
이라는 디렉토리를 만들어 보고 확인해 봅니다.
컨테이너 종료, 실행, 접속
- exit
exit
을 입력해 컨테이너를 종료합니다.- ps -a
docker ps -a
를 입력해 현재 설치된 컨테이너 목록을 봅니다.
- start
docker start HelloDocker
를 입력해 HelloDocker 컨테이너를 실행시킵니다.- 자기의 이름이 리턴되며 실행이 된것을 알 수 있습니다.
- attach
docker attach HelloDocker
을 입력해 아까 실행시킨 컨테이너에 접속 합니다.- 아까 만든
Yoonsung
디렉토리가 있는것을 확인 할 수 있습니다.
백그라운드
ctrl + p
,ctrl + q
를 차례대로 입력하고 컨테이너를 빠져나옵니다.
- ps
docker ps
를 입력해 현재 실행중인 컨테이너를 확인해 봅니다.
- exec
exec 컨테이너이름 명령 매개변수
를 입력합니다.docker exec HelloDocker ehco "Hello World"
- HelloDocker 컨테이너는 응답해라 “Hello World 라고
- Hello World 라고 응답한것을 볼 수 있습니다.
컨테이너 종료
- stop
docker stop HelloDocker
를 입력해 HelloDocker 컨테이너를 종료합니다.docker ps
를 통해 확인하면 실행중인 컨테이거가 없는것을 확인 할 수 있습니다.
참고사항
- 지금 노트북에서는 괜찮은데 데스크탑에서는 Docker명령어 반응에 로딩이 있다
- 이유와 해결방법을 찾아봐야겠다.
Reference
- https://www.slideshare.net/pyrasis/docker-fordummies-44424016
- https://www.popit.kr/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EC%B2%98%EC%9D%8C-docker-%EC%A0%91%ED%95%A0%EB%95%8C-%EC%98%A4%EB%8A%94-%EB%A9%98%EB%B6%95-%EB%AA%87%EA%B0%80%EC%A7%80/
- https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html