이것저것 기록

[Docker] 도커 컨테이너 실행하기 / 명령어, 옵션 정리 본문

Data Science/New Tech

[Docker] 도커 컨테이너 실행하기 / 명령어, 옵션 정리

anweh 2021. 6. 6. 19:19

0. 도커 컨테이너와 관련된 명령어

출처: http://docker-saigon.github.io/post/Docker-Internals/

  •  도커의 컨테이너는 명령어에 따라 상태가 변한다. 
  • 보통은 docker run을 사용하여 컨테이너를 생성함과 동시에 시작한다.
상태 명령 설명
생성 docker create 생성만 한다 
생성 + 시작 docker run 생성하고 시작
시작 docker start 시작
정지 docker stop 실행 중인 컨테이너 정지
삭제 docker rm  컨테이너 삭제

 

 

1. 도커 컨테이너 구조

  • 도커 컨테이너는 컨테이너 레이어와 이미지 레이어로 이루어진다. 
    • 컨테이너 레이어: 쓰기 가능한 Writable Layer로 각 컨테이너의 최상단 레이어에 생성된다. 
    • 이미지 레이어: Read-only Layer로, 다른 컨테이너와 공유할 수 있다. 
  • 아래의 그림을 보자. 왼쪽 사진은 컨테이너의 구조이다. 컨테이너의 가장 위에 컨테이너 레이어가 있고, 그 밑의 (청녹색) 이미지 레이어는 자물쇠로 잠겨있는 Read-only Layer이다. 그리고 이 청녹색의 이미지 레이어는 오른쪽 그림처럼 다른 컨테이너에서 사용할 수 있다. 

컨테이너 레이어의 구조 (좌) / Read-only Layere의 공유 (우)

 

 

2. 도커 컨테이너 생성 및 접속 -- RUN 

2.1 기본 SYNTAX

$ docker run <옵션> --name <컨테이너이름:사용자지정> <이미지명 or 이미지ID:Tag> <COMMANDS>

 

2.2 옵션

  • -it (interactive, tty): 이 옵션을 추가해야 컨테이너 안에서 터미널 실행이 가능하다. 
  • -p [호스트의 포트:컨테이너 포트] 
  • --name [컨테이너 이름]
  • -v [Host Path : Container Path] 
  • -d : detach모드로 도커를 백그라운드에서 돌리라는 의미
$ docker run -it -p 8888:8888 --name temp centos:latest
[root@528920270c3b /]# 

 

2.3 커맨드 (도커 + 주피터노트북) 

  • 도커 컨테이너를 실행함과 동시에 커맨드를 날릴 수 있다. 우선 아래의 shell 명령어를 하나씩 뜯어보자. 
$ docker run \
        run -it -p 8888:8888 --name temp centos:latest \
        jupyter notebook \
        --allow-root \
        --ip 0.0.0.0 \
        --NotebookApp.token='' \
  • jupyter notebook: 주피터 노트북을 열라는 뜻. 
  • --allow-root: 도커 컨테이너의 기본 계정은 root이기 때문에 컨테이너를 생성하면서 jupyter를 열려면 이 옵션을 꼭 붙여줘야한다. 
  • --ip 0.0.0.0 : 본인의 ip를 모를 때 사용한다. 컨테이너는 한 대의 새로운 컴퓨터 같은 개념이기 때문에, 그때 그때 ip를 할당받게 된다. 따라서 할당될 ip 값을 모른다면 0.0.0.0으로 설정하면 된다 
  • --NotebookApp.token=' ' : 토큰을 입력하여 주피터에 접속하는 것이 귀찮을 때 해당 인증 절차를 잠시 꺼둔다. 

실행 화면ㄴ

  • 위 명령어를 그대로 입력했다면 바로 주피터 노트북이 실행될 것이다. 

 

 

3. 그외 도커 명령어

$ docker ps                  #실행 중인 컨테이너 확인 
$ docker ps -a               #도커의 모든 컨테이너 확인 
$ docker stop [컨테이너ID]   #컨테이너 중지 
$ docker rm [컨테이너ID]     #컨테이너 삭제

 

Comments