Docker 기본 이미지 실행 (이전 완료)
1. 이미지
컨테이너를 실행시키려면 실행시키려는 이미지가 필요하다. 이미지는
docker pull <image_name>[:<tagname>]
위 명령으로 받아오게된다. pull 명령으로 받아오게 되면,받아온 이미지를 create로 컨테이너를 생성, start로 컨테이너를 실행시킬 수 있다. 또는
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG…]
으로 한번에 이미지를 받아오고 컨테이너를 만들어 실행할 수도 있다.
2. pull, create, start 로 실행
2.1 pull
create
start
3. run으로 한번에 실행
두 방식 모두 각자의 장단점이 있으므로 본인에게 맞는 방법으로 하면 된다.
4. 컨테이너
실행된 컨테이너는 bash쉘을 통해 접근하게 된다.
실행된 컨테이너는 묵묵히 자신의 일을 하고 있고, 해당 컨테이너에 bash 프로세스를 실행시켜 해당 bash쉘에 접근함으로써 컨테이너에 접근하는 원리이다.
컨테이너에 접근하기 위한 방법으로는 세가지 방법이 있다.
4.1 attach 명령을 사용
container에 표준 입 출력을 연결하는 방식이며, 컨테이너에서 bash등 입출력 프로세스가 진행중이며, -it옵션과 같은 터미널 접근 설정이 되어있을때 가능하다.
bash 등 쉘이 실행중이면 attach 명령이 가능하다.
docker attach {-it와 쉘이 실행중인 컨테이너 이름}
4.2 exec 명령으로 bash쉘 실행
docker exec -it <container> bash
실행중인 컨테이너에 bash쉘을 실행하는 명령으로 -it옵션과 같이 사용하면 표준 입출력을 사용하여 쉘을 실행시킴.
(접속의 개념이 아닌 bash쉘 실행의 개념임)사용할 수 있다.
여기에는 3가지 알아야 할 사항이 있는데 옵션 i,t 그리고 [COMMAND] bash이다.
이 세가지의 의미는 다음과 같다.
- -i : 컨테이너와 interactive하게 접근 하겠다. STDIN을 항상 열게하는 옵션이다.
- -t : tty를 할당한다
- bash : bash쉘을 실행한다 => STDIN이 열려있는 bash 쉘을 실행해 tty로 접근하겠음
5. run 명령시 -it, bash 명령으로 컨테이너 생성과 동시에 bash 실행
docker run -it <image> bash
-it, bash는 위에서 기술하였다.
6. 컨테이너 탈출
세가지 방법 모두 동일하게 컨테이너에서 빠져나오고 싶을때는 ⌃p + ⌃q 를 통해 빠져나온다.
7. 간단한 몇가지 docker 실행 명령
docker run -p 3306:3306 mariadb
docker run -p 8080:80 nginx
docker run -it ubuntu bash
docker run -it python bash
1. mariadb 실행
2. nginx 실행
3. ubuntu 실행 후 bash쉘로 접속
4. python(ubuntu) 실행 후 bash쉘로 접속
1,2 의 경우 -d 옵션을 통해 데몬으로 동작시킬 수 있다.