[Docker] 1.도커 시작
어려운 내용이 들어가면 내가 이해하기 어려우니까 도커에 대한 간단한 글
도커
컨테이너 기반 가상화 도구. 리눅스 상에서 컨테이너 방식으로 프로세스를 격리해서 실행하고 관리해 준다.
도커 설치 및 기본 명령어
- 설치
$ curl -s https://get.docker.com/ | sudo sh
- sudo 없이 실행하기
도커는 관리자 권한에서만 실행이 가능하기 떄문에 sudo 명령어를 포함하여야 한다. 이를 위해 사용자에 권한을 부여한다.
$ sudo usermod -aG docker $USER
- 일단 사용해보기
명령어에 대해 알아보기 전 간단하게 사용부터 해보자.
$ docker run -p 80:80 nginx
위 명령어를 실행하면 아래 로그가 출력된다.
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 [컨테이너]
컨테이너 연결
- exec
$ docker exec -it [컨테이너] [실행할 프로세스]
예제
$ docker exec -it my_container /bin/bash
- attach
$ docker attach [컨테이너]
### 컨테이너 로그 확인
$ docker logs [컨테이너]
-f 옵션으로 로그 스트림 확인