[Docker] 1.도커 시작

어려운 내용이 들어가면 내가 이해하기 어려우니까 도커에 대한 간단한 글

도커

컨테이너 기반 가상화 도구. 리눅스 상에서 컨테이너 방식으로 프로세스를 격리해서 실행하고 관리해 준다.

도커 설치 및 기본 명령어

$ curl -s https://get.docker.com/ | sudo sh
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
.. 생략

도커는 만들어둔 이미지를 컨테이너로 생성하는데 만약 로컬 저장소에 이미지가 없다면 Docker Hub라는 원격 저장소에서 이미지를 다운로드 받는다. 위 과정이 끝나고 컨테이너가 실행 되었다면 http://localhost/로 접근하면 nginx 컨테이너가 실행중인 것을 확인 할 수 있다.

이미지 목록

$ docker images

이미지 -> 컨테이너

$ docker create [이미지]:[태그]
$ docker run [이미지]:[태그] # 생성과 함께 실행

이미지를 컨테이너로 생성하고 여러 옵션이 있다.

옵션 설명
-d 백그라운드 모드
-p 호스트와 컨테이너 포트를 포워딩
-v 호스트와 컨테이너 볼륨 마운트
-e 컨테이너에서 사용할 환경변수 설정
–name 컨테이너 이름 설정 (설정 안하면 이상한 이름이 랜덤으로 생성)
–rm 프로세스 종료 시 컨테이너 자동 제거
-i 컨테이너 연결없이도 표준입력 유지
-t bash 사용을 위한 명령어 셀 표시
–link 컨테이너와 연결

사용 예제

$ docker create -d -it -p 80:80 --rm --name my_container nginx:latest

컨테이너 실행/종료

$ docker start [컨테이너]
$ docker stop [컨테이너]

docker stop $(docker ps -aq)' 로 전체 컨테이너 종료

컨테이너 목록

$ docker ps

-a 옵션으로 실행 중이 아닌 컨테이너도 확인 가능

-q 옵션으로 컨테이너 ID만 출력 가능

컨테이너 삭제

$ docker rm [컨테이너]

컨테이너 연결

$ docker exec -it [컨테이너] [실행할 프로세스]

예제

$ docker exec -it my_container /bin/bash
$ docker attach [컨테이너]

### 컨테이너 로그 확인

$ docker logs [컨테이너]

-f 옵션으로 로그 스트림 확인