본문 바로가기

Docker\K8s

[Docker] docker 기초 1 - 기본 설명 및 명령어 정리 | 프로삽질러

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