Docker 이미지
도커 엔진에서 사용하는 기본 단위(이미지, 컨테이너) 중 하나로 이미지로 컨테이너를 생성한다.
가상머신을 생성할 때 필요한 iso 파일과 비슷한 개념이다. 컨테이너를 생성, 실행할 때 읽기 전용으로 사용된다.
[저장소이름]/[이미지이름]:[태그] | docker pull wrstmeister/kafka:latest |
- [저장소이름] : 이미지가 저장된 장소를 의미한다. Docker Hub의 공식 이미지라면 저장소 이름이 명시되지 않아 저장소 이름을 생략하고 [이미지이름]:[태그] 만 사용 가능하다.
- [이미지이름] : 컨테이너를 생성하기 위한 이미지 이름이다.
- [태그] : 이미지의 버전 관리하는데 사용된다. 생략하면 해당 이미지의 최신 버전인 latest 버젼으로 설치된다.
Docker container 생성 후 실행
1) docker run [이미지이름]
2) docker create [이미지이름] -> docker ps -a 로 생성한 컨테이너의 NAME 확인 ->
docker start [컨테이너이름] -> docker attach [컨테이너이름] (-i -t 옵션 사용하여 create 한 경우(밑에서 설명))
Docker run vs create
run, create 명령어는 다음의 프로세스를 한 명령어로 실행 가능케 한다.
run : docker pull(이미지가 없는 경우) -> docker create -> docker start -> docker attach(-i -t 옵션 사용한 경우)
create: docker pull(이미지가 없는 경우) -> docker create
Docker run/create 명령어 옵션
옵션 | 설명 | 예제 (사용할 수 있는 단순한 예시입니다) |
-name | 컨테이너의 이름 설정(매번 컨테이너 id로 접근하기 불편하므로 이름 지정) | docker run [이미지이름] --name [컨테이너이름] |
-p | 호스트와 컨테이너 연결하는 외부 포트 바인딩 | docker run 이미지이름 --p [호스트 포트]:[게스트포트] |
-v | 호스트와 컨테이너 디렉토리 연결(마운트) | mkdir [해당 컨테이너의 디렉토리를 저장할 디렉토리이름] docker run -v [저장할디렉토리] [이미지이름] |
-rm | 프로세스 종료 시 컨테이너 자동 제거 | docker run -rm [이미지이름] *컨테이너를 일회성으로 사용 시 컨테이너 종료와 동시에 자동으로 삭제해주는 옵션 |
-i | 호스트와 컨테이너 간 상호 활성화 | docker run -i [이미지이름] * docker run -i ubuntu 명령어 실행 시 tty모드를 사용하지 않고있기때문에 쉘이 안나올 것임. 빈 화면에 ls 을 입력하면 그제서야 폴더목록들 나옴 |
-t | 호스트와 컨테이너 간 tty 활성화 | docker run -t [이미지이름] * docker run -t ubuntu 명령어 실행 시 상호 입출력을 활성화하지 않기 때문에 쉘은 나와도 ls 와 같은 명령어를 누르면 아무것도 출력되지 않을 것임. -i -t 모두 사용하여야 ubuntu의 완전한 쉘 기능 사용할 수 있다. |
-d | detach 모드로 컨테이너를 백그라운드에서 동작 | docker run -d [이미지이름] |
-h | ||
--link | ||
--network |
'Docker\K8s' 카테고리의 다른 글
[DevOps on Kubernetes] kubernetes에 Jenkins 설치하기 - 2 | 프로삽질러 (0) | 2021.08.03 |
---|---|
[DevOps on Kubernetes] kubernetes 에 Jenkins 설치하기 | 프로삽질러 (0) | 2021.08.03 |
[DevOps on Kubernetes] 도커로 GitLab 설치하기 | 프로삽질러 (0) | 2021.08.03 |
[Docker] docker foreground vs background 차이 (0) | 2021.04.28 |