애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼
- Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다. 또한, Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있다.
더 많은 소프트웨어를 더 빨리 제공
- Docker 사용자는 평균적으로 Docker를 사용하지 않는 사용자보다 7배 더 많은 소프트웨어를 제공하며, Docker를 사용하면 필요할 때마다 격리된 서비스를 제공할 수 있다.
운영 표준화
- 작은 컨테이너식 애플리케이션을 사용하면 손쉽게 배포하고, 문제를 파악하고, 수정을 위해 롤백할 수 있다.
원활하게 이전
- Docker 기반 애플리케이션을 로컬 개발 시스템에서 AWS의 프로덕션 배포로 원활하게 이전할 수 있다.
비용 절감
- Docker 컨테이너를 사용하면 각 서버에서 좀 더 쉽게 더 많은 코드를 실행하여 사용률을 높이고 비용을 절감할 수 있다.
Homebrew를 통한 설치
- brew install --cask docker
버전 확인
- docker --version
- docker-compose --version
명령어 | 설명 |
---|---|
docker images | 이미지 조회 |
docker search 이미지 이름 | 이미지 검색 |
docker pull 이미지 이름:태그 | 이미지 가져오기 |
docker build . | 이미지 생성 |
docker rmi 이미지 아이디 | 이미지 삭제 |
명령어 | 설명 |
---|---|
docker ps | 컨테이너 목록 보기 |
docker create [옵션] [이미지 이름]:[태그] | 컨테이너 생성하기 옵션) -i:상호 입출력, -t:tty를 활용하여 bash 쉘을 사용 |
docker start [이미지 이름]:[태그] | 컨테이너 실행하기 |
docker exec -it [컨테이너 이름] /bin/bash | 컨테이너 내부 접속후 배쉬 사용 |
docker rename [기존 이름] [변경 하고자 하는 이름] | 컨테이너 이름 변경 |
docker rm [컨테이너 이름] | 컨테이너 삭제 |
-p [호스트 포트]:[컨테이너 포트] | 컨테이너 외부 노출 * ex) docker run -p 3000:4000 |
docker container logs -t [컨테이너 식별자] | 로그 확인 |
명령어 : docker run [option] image[:Tag|@DIGEST][COMMAND][ARG...]
pull, create, start 를 상황에 따라 수행
옵션 설명 -d detached mode 흔히 말하는 백그라운드 모드(데몬 프로세스) -p 호스트와 컨테이너의 포트를 연결(포워딩) -v 호스트와 컨테이너의 디렉토리를 연결(마운트) -e 컨테이너 내에서 사용할 환경변수 설정 --name 컨테이너 설정 --it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
(컨테이너의 표준 입력과 로컬 컴퓨터의 키보드 입력을 연결)--rm 프로세스 종료시 컨테이너 자동 제거 --link 컨테이너 연결[컨테이너 명:별칭] --restart docker desktop을 실행시킬 때 마다 container의 자동 restart 실행 여부 * no : container를 재시작 시키지 않는다. (default)
* on-failure[:max-retries] : container가 정상적으로 종료되지 않은 경우(exit code가 0이 아님)에만 재시작 시킨다.
max-retries도 함께 주면 재시작 최대 시도횟수를 지정할 수 있다.
* always:container를 항상 재시작시킨다. exit code와 상관 없이 항상 재시작 된다.
* unless-stopped:container : stop시키기 전 까지 항상 재시작 시킨다.
참조