꿈꾸는 시스템 디자이너

Docker 사용법 | 컨테이너 생성/종료/실행/진입 본문

Development/Cloud computing

Docker 사용법 | 컨테이너 생성/종료/실행/진입

독행소년 2020. 7. 1. 14:43

1. 컨테이너 생성

우분투 18.04 이미지를 이용해서 study라는 이름의 컨테이너를 생성한다.

ubuntu@here4you:~$ sudo docker run -it --name study ubuntu:18.04
Unable to find image 'ubuntu:18.04' locally
18.04: Pulling from library/ubuntu
d7c3167c320d: Pull complete
131f805ec7fd: Pull complete
322ed380e680: Pull complete
6ac240b13098: Pull complete
Digest: sha256:86510528ab9cd7b64209cbbe6946e094a6d10c6db21def64a93ebdd20011de1d
Status: Downloaded newer image for ubuntu:18.04
root@a6c38cd53d5f:/#

-it는 인터랙션을 위한 옵션으로 -it 옵션을 추가해야 해당 컨테이너의 터미널로 접근 및 제어가 가능하다.

a6c38cd53d5f는 컨테이너의 ID에 해당하며, 컨테이너에 root로 진입했음을 의미한다.

 

2. 컨테이너 종료

진입했던 컨테이너를 종료하고 빠져나오려면 exit 명령어를 이용한다.

root@a6c38cd53d5f:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@a6c38cd53d5f:/# exit
exit
ubuntu@here4you:~$

이 때 주의할 점은 exit 명령어로 컨네이터에서 빠져나오면 동시에 컨테이너도 종료된다는 것이다. 서버 등을 운영 중일 경우 exit를 이용하면 서비스가 종료될 수 있으니 주의해야한다.

컨테이너 종료 없이 빠져나오려면 Ctrl + P, Q를 입력해야 한다.

 

3. 컨테이너 시작 및 재진입

종료된 컨테이너를 시작할 때에는 start 명령어를 사용하고, 실행중인 컨테이너에 진입할 때에는 attach 명령어를 사용한다.

 

우선 attach 명령어를 이용해서 생성했던 study 컨테이너로 진입을 시도해보자.

ubuntu@here4you:~$ sudo docker attach study
You cannot attach to a stopped container, start it first
ubuntu@here4you:~$

종료된 컨테이너로는 진입이 불가하니 실행을 먼저하라는 문구가 출력된다.

 

컨테이너를 실행한 후 다시 진입해 보자.

ubuntu@here4you:~$ sudo docker start study
study
ubuntu@here4you:~$ sudo docker attach study
root@a6c38cd53d5f:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@a6c38cd53d5f:/#

정상적으로 진입되었다.

 

4. 컨테이너에서 빠져나온 후 재진입

Ctrl + P, Q를 입력하여 컨테이너에서 빠져나온 후 다시 attach 명령어로 재진입해보자.

root@a6c38cd53d5f:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@a6c38cd53d5f:/# read escape sequence
ubuntu@here4you:~$ sudo docker attach study
root@a6c38cd53d5f:/#

start 명령어 없이 바로 진입되는 것을 확인할 수 있다.

 

5. 컨테이너의 정보를 확인

ps 명령어를 이용하면 실행중인 컨테이너들의 정보를 확인할 수 있으며, -a 옵션을 추가하면 모든 컨테이너의 정보를 확인할 수 있다.

ubuntu@here4you:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
a1b40c67d52d        study               "/bin/bash"         8 minutes ago       Up 8 minutes        0.0.0.0:6900->80/tcp   study2
ubuntu@here4you:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS                  NAMES
a1b40c67d52d        study               "/bin/bash"         8 minutes ago       Up 8 minutes                0.0.0.0:6900->80/tcp   study2
c628d61e15e8        ubuntu:18.04        "/bin/bash"         42 minutes ago      Exited (0) 23 minutes ago                          myserver
a6c38cd53d5f        ubuntu:18.04        "/bin/bash"         About an hour ago   Exited (0) 16 minutes ago                          study
ubuntu@here4you:~$
Comments