Day21
서버에서 이야기하는 컨테이너는 다양한 프로그램, 실행 환경을 컨테이너에 추상화 한 후 동일한 인터페이스를 통해 프로그램의 배포 및 관리를 단순하게 해주는 것이다. 프로그램을 컨테이너를 추상화 할 수 있고 어디에서든지 실행할 수 있다는 장점이 있다.
기존의 OS를 가상화 하는 방식이 아니라 프로세스를 격리하는 방식으로 돌아가도록 해서 가볍고 빠르게 동작할 수 있다. 또한 CPU나 메모리도 필요한 만큼만 사용해서 성능적으로도 우수하다.
이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다는 특징이 있다. 같은 이미지로 여러 개의 컨테이너를 생성할 수 있다.
도커 이미지는 Docker hub에서 관리되며 유저는 공짜로 이미지를 다운받고 배포할 수 있다.
도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있어서 용량이 수백메가정도이다. 도커는 레이어 방식을 통해서 여러 개의 레이어를 하나의 파일시스템으로 사용할 수 있게 해서 효율적으로 이미지를 관리한다.
이미지 목록 확인
docker images [OPTIONS] [REPOSITORY[:TAG]]
이미지 다운
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
이미지 삭제
docker rmi [OPTION] IMAGE [IMAGE...]
컨테이너 실행
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
OPTIONS
-
-d
: 백그라운드 모드 -
-p
: 포트를 연결 -
-v
: 로컬과 컨테이너의 디렉토리를 연결 -
-e
: 환경변수 설정 -
--name
: 컨테이너 이름 설정 -
--rm
: 프로세스 종료 시 컨테이너 자동 제거 -
-it
: 터미널 입력을 위한 옵션
컨테이너 목록 확인
docker ps
- 실행중인 컨테이너 목록
docker ps -a
- all 옵션으로 실행되었다가 종료된 컨테이너까지 목록에 나타남
컨테이너 중지
docker stop [OPTIONS] CONTAINER [CONTAINER...]
컨테이너 제거
docker rm [OPTIONS} CONTAINER [CONTAINER...]
컨테이너 둘러보기
docker logs [OPTIONS] CONTAINER
docker logs --tail 10 CONTAINER
- 최신 로그 10개만 출력
docker logs -f CONTAINER
- 실시간 로그 생성 확인
컨테이너 명령어 실행
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec -it jerry bash
- docker bash 실행
docker exec -it jerry mysql -uroot
- docker 컨테이너에 깔려있는 mysql 을 root계정으로 실행