Docker

임성준·2022년 5월 17일
0
post-thumbnail

🐳 Docker

애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼

  • Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다. 또한, Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있다.

1. WHY❓

더 많은 소프트웨어를 더 빨리 제공

  • Docker 사용자는 평균적으로 Docker를 사용하지 않는 사용자보다 7배 더 많은 소프트웨어를 제공하며, Docker를 사용하면 필요할 때마다 격리된 서비스를 제공할 수 있다.

운영 표준화

  • 작은 컨테이너식 애플리케이션을 사용하면 손쉽게 배포하고, 문제를 파악하고, 수정을 위해 롤백할 수 있다.

원활하게 이전

  • Docker 기반 애플리케이션을 로컬 개발 시스템에서 AWS의 프로덕션 배포로 원활하게 이전할 수 있다.

비용 절감

  • Docker 컨테이너를 사용하면 각 서버에서 좀 더 쉽게 더 많은 코드를 실행하여 사용률을 높이고 비용을 절감할 수 있다.

2. Install for Mac 🚀

Homebrew를 통한 설치

  • brew install --cask docker

버전 확인

  • docker --version
  • docker-compose --version

3. Command 🕹

Image

명령어 설명
docker images 이미지 조회
docker search 이미지 이름 이미지 검색
docker pull 이미지 이름:태그 이미지 가져오기
docker build . 이미지 생성
docker rmi 이미지 아이디 이미지 삭제

Container

명령어 설명
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

명령어 : 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시키기 전 까지 항상 재시작 시킨다.

참조

profile
오늘도 공부 📖🌙

0개의 댓글