컨테이너에 의해 격리되어 개별적으로 소유할 수 있는 자원
docker/whalesay:latest
Docker Hub라는 레지스트리에서 docker라는 유저가 등록한 whalesay 이미지 혹은 레포지토리에서 latest 태그를 가진 이미지
docker hub에서 이미지 불러오기
docker image pull <user>/<이미지>:<태그>
이미지 목록 확인
docker images
docker container에 파일 복사
docker container cp <로컬 경로> <컨테이너 이름>:<컨테이너 경로>
container background에서 실행
docker container run -- name <컨테이너_이름> -d -p <로컬 포트>:<컨테이너 포트> <이미지 이름>
현재 경로에 있는 Dockerfile 빌드
docker build --tag <이미지 이름>:<태그> .
docker-compose.yml 파일 작성
version: '<버전>'
services:
<서비스 이름>:
iamge: <이미지 이름>
restart: '<no/on-failure/always/unless-stopped>'
ports:
- '<로컬 포트>:<컨테이너 포트>'
container_name: <컨테이너 이름>
volumes:
- '<로컬 경로>:<컨테이너 경로>'
environment:
<환경변수 이름>: <환경변수 값>
왼쪽의 VM의 구성 요소에 OS가 존재하는데 비해, 오른쪽의 도커 컨테이너에는 OS를 포함하고 있지 않다. 각 컨테이너는 호스트 OS의 커널(Kernel, 시스템 콜과 같이 OS의 핵심 기능을 구현한 프로그램)을 공유한다. 윈도우나 macOS는 근본적으로 리눅스 커널을 쓰고 있지 않으므로, 해당 운영체제의 경우 리눅스 커널을 VM의 형태로 실행시키는 하이퍼바이저(Hyper-V, LinuxKit, HyperKit)를 자체적으로 구동한다.