2019.04.14 - Docker에서 이미지 다운/실행하기, 컨테이너 상태 확인하기, 각 컨테이너에서 실행중인 프로그램에 옵션주거나 bash 띄우기

Container는 마치 VM 같지만그냥 OS 위에서 돌아가는 프로세스에 가깝고 VM과는 거리가 멀다.

1. Docker에서 이미지 다운받아 실행하기

- docker pull IMAGE : IMAGE를 레파지토리에서 다운받는다.
- docker container run IMAGE : IMAGE를 실행한다 (없으면 자동으로 레파지토리에서 받아온다)

EXAMPLE)

1) mysql download 및 실행
-> docker container run -d --name mysql -p 3306:3306 -e MYSQL_RANDOM_ROOT_PASSWORD=yes mysql
-> docker container logs mysql
-> 여기에 generated random password가 있어서 이 password를 이용하면 접속 가능

2) apache down / execute
-> docker container run -d --name 아파치 -p 로컬에서 넘기는 포트:아파치에서 받는 포트
 httpd

3) nginx down / execute
-> docker container run -p 8888:80 --name nginx nginx



2. Docker에서 실행중인 Container의 상태 점검


* docker container inspect IMAGE : Docker에서 실행중인 컨테이너의 메타데이터(network, config, volumes...)를 확인한다.

* docker top NAME : 해당 NAME의 컨테이너에서 실행중인 프로세스를 보여준다.

* docker image ls : docker에 다운 받은 이미지 이름들을 보여준다

* docker container stats [NAME] or None : 해당 NAME의 컨테이너의 상태 (CPU사용률, 메모리 사용률등)을 보여주고 NAME을 입력하지 않으면 모든 컨테이너의 상태가 나타난다.

* docker-machine restart : docker를 실행 중인 VM이 재부팅 된다.



3. 컨테이너의 Shell로 진입하거나 컨테이너에서 실행중인 프로세스의 bash를 실행하기


* docker container run -it IMAGE : 이미지를 실행하면서 바로 해당 컨테이너의 Shell로 진입
* docker container exec -it IMAGE COMMAND : 실행 중인 컨테이너의 COMMAND를 실행하며 인터렉티브 셸 실행

** -it 는 interactive / tty 의 약어로 ssh로 접속하며 interactive shell을 켠다고 이해하면 될듯.


현재까지로는 컨테이너란 마치 하나의 VM에 하나의 이미지가 돌아가는 것처럼 느껴진다.
VM은 아니라지만 그렇게 느껴진다.
VM을 마치 프로세스로 하나씩 띄우고 거기에 내가 원하는 이미지 (엔진엑스, 앞파치등)를 각각 돌리는 느낌이다.


댓글

이 블로그의 인기 게시물

로컬 Tomcat 서버 실행속도 개선

2019.05.23 - SQLAlchemy 의 객체 상태 관리 (expire, refresh, flush, commit) 에 관한 이해

2020.02.17 Python의 multiprocessing 중 Pool.map(), chunksize에 관한 내용