[Note_시도쿠] 2장 도커 엔진
1.이미지와 컨테이너 개념
도커 이미지 ≒ iso 이미지
도커 컨테이너 ≒ vm 인스턴스
2.도커 컨테이너 다루기
도커 컨테이너 실행 명령어
docker run [옵션] [이미지명] (create도 사용가능)
옵션:
-i -t: 표준 입출력이 활성화된 상호작용이 가능한 셸환경. -d와 대조됨.
-p [호스트포트]:[컨테이너포트] : 호스트와 컨테이너 포트를 연결해주는 옵션
-v: 도커 내부의 데이터를 영속적으로 사용하기 위한 명령어. 호스트의 폴더:컨테이너내부의 폴더.
ex) /jenkins:/var/jenkins_home
** 둘다 없으면 둘다 생김.
** 호스트에 디렉토리가 없으면 컨테이너의 디렉토리가 호스트에 복사됨.
** 호스트에 디렉토리가 있으면 호스트에 있는게 컨테이너에 복사됨. (둘다 있어도 호스트가 먼저임)
-d: 컨테이너를 백그라운드에서 동작하는 어플리케이션으로 실행하는 옵션. 포그라운드에서 프로그램이 실행되지 않으면 꺼짐.
-u
-link: 포트연결 관련 명령어
-e: 컨테이너 내부의 환경변수를 지정한다.
--name
도커 포트연결 상태 확인
docker port
도커 컨테이너 네트워크 인터페이스 연결. run 할 때, 포트 연결설정. host:container 여러개 동시에도 가능
재설정은 stop하고 run할때 다시 설정하면 됨
도커 컨테이너 중지 명령어
docker stop [컨테이너 이름]도커 이미지 리스트 보기
docker images
도커 컨테이너 리스트 보기
docker ps
컨테이너의 command - 보통 bin/bash로 설정되어있다. ps에서 확인 가능하다.(bash 셸)
도커 컨테이너 환경 접속하기
docker exec -it [컨테이너 아이디] /bin/bash
(it옵션은 표준 입출력을 사용하겠다는 것임)(exec는 호스트에서 도커 내부의~프로그램을 실행하겠다는 뜻이다.)
docker start [컨테이너 이름]
docker attach [컨테이너 이름]도커
컨테이너 환경 나가기
docker exit : 컨테이너 중지하고 빠져나오기
ctrl+ p or q : 컨테이너 중지하지 않고 빠져나오기
컨테이너 이름 다시 짓기
docker rename [원래이름] [바꿀이름] : 컨테이너 이름 다시 짓기
컨테이너 삭제하기
docker rm [컨테이너이름]: 컨테이너 삭제
도커 상태보기
docker [container || volume || image ] inspect
## 볼륨 활용의 3가지 방법
1. -v 옵션으로 호스트와 공유
2. 볼륨컨테이너
3. docker volume 명령어
+네트워크, 로깅, 자원할당 제한도 가능한데.. 이거 다시보기
3.도커 이미지 다루기
도커 이미지 - 모든 컨테이너는 이미지를 기반으로 생성된다.
+패키지 매니저(리눅스에서 debian은 apt-get redhat은 yum) - 컴퓨터 프로그램의 설치, 업그레이드, 구성, 제거 과정을 자동화하는 소프트웨어 도구들의 모임이다.
docker pull ≒ apt-get
docker hub ≒ apt repository
**보통 docker 공식 라벨이 붙어있는 이미지가 베이스 이미지가 된다.
docker search - 도커 허브 레지스트리 검색 명령어 docker.io/ubuntu와 같이 레지스트리를 명시한다.
유명한 베이스 이미지의 경우 각 단체 사설 레포지토리에 있는 경우가 많다. ex) jenkins/jenkins:lts portainer/portainer
docker create
docker run
docker pull
4.도커 파일 다루기
5.도커 데몬 다루기