docker개요
애플리케이션을 개발, 배포, 실행을 용이하게 하는 오픈 소스 플랫폼
컨테이너
Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징
컨테이너에는 라이브러리, 시스템 도구, 코드 등 소프트웨어를 실행하기 위한 모든 것이 포함
가상화 서버인 VM과의 비교
도커는 VM에 비해 HOST의 OS를 공유하는 컨테이너
윈도우와 같이 리눅스환경과 다를경우 경량화된 OS를 설치하여 실행
일반적으로 경량화 alpine리눅스 사용
VM에 비해 경량화된 가상화 서버로서 빠른 부팅속도와 더 나은 성능을 보임
docker의 주요요소
도커 데몬(Daemon)
이미지, 컨테이너, 네트워크 등의 관리를 담당
쉽게 생각해 도커 프로그램 그 자체로서, 도커 사용을 위해 먼저 설치필요
도커 클라이언트(Client)
사용자가 도커 데몬과 통신할 수 있게 해주는 커맨드 라인 인터페이스(CLI) 도구
도커를 명령어로 컨트롤할수 있게 해주는 도구로서 도커 설치시 사용 가능
명령어 뿐만아니라 UI환경에서 도커데스크탑을 이용해서 쉽게 컨트롤 가능
도커 이미지(Image)
애플리케이션과 모든 필요한 설정을 포함하는 템플릿
도커 허브(Docker Hub)
다양한 도커 이미지를 찾고 공유할 수 있는 저장소
컨테이너(Container)
도커가 도커이미지를 통해 애플리케이션을 실행한 공간
도커파일
Dockerfile은 Docker 이미지를 빌드하기 위한 명령어와 설정을 포함하는 텍스트 파일
확장자가 없음에 유의
docker image
도커는 image 기반으로 동작
image란 컨테이너를 실행하기 위한 압축파일과 같은 개념
도커 이미지 다운로드
명령어 : docker pull 이미지명
ex)docker pull nginx
도커 이미지 실행
docker run -d -p 8080:80 nginx
d는 백그라운드
-p를 통해 포트 지정하고, 외부포트:내부포트로 실행
특정 버전의 nginx를 실행하고 싶다면 nginx:버전명. 버전제외시 최신버전
실행중인 컨테이너 목록 조회
docker ps
종료된 컨테이너 포함시 docker ps -a
image 는 도커파일이라는 스크립트를 통해 build
ex)docker build -t 이미지명:[태그명] -f <도커스크립트파일경로> <빌드컨텍스트위치>
도커스크립트파일
만약 도커파일명이 Dockerfile이 아닌 DockerfileDev 등 변형된 경우엔 -f 사용필요
현재 경로에 Dockerfile이 있으면 -f 옵션과 도커스크립트파일경로 생략가능
빌드컨텍스트
빌드컨텍스트란 Docker 이미지를 빌드할 때 Docker가 참조할 모든 파일과 디렉터리의 위치를 의미
현재 위치에 대상 파일이 있다면 “빌드컨텍스트위치” 대신에 “.” 으로 대체 가능
로컬 컴퓨터에 만들어진 도커 image 목록 조회 명령어
docker images
image 삭제 명령어
docker rmi 이미지ID