728x90

가동 중인 Docker 컨테이너 조작


docker container attach

가동 컨테이너 연결

  • 가동 중인 컨테이너에 연결할 때 사용
  • 컨테이너에 연결
  • /bin/bash가 실행되고 있는 os 컨테이너에 연결
  • 연결한 컨테이너 종료: ctrl + d
  • 컨테이너에서 분리 (컨테이너 실행 유지): ctrl + p + q
[root@localhost ~]# docker container attach os

# ctrl + p + q: 컨테이너 실행을 유지하고 빠져나옴
[root@134edd645e3f /]#
[root@134edd645e3f /]# read escape sequence
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED             STATUS             PORTS                                       NAMES
109beea4e76b   centos      "/bin/bash"              36 minutes ago      Up 12 minutes                                                  osb
03002e13460e   centos      "/bin/bash"              37 minutes ago      Up 37 minutes                                                  osa
763e42cf5bd9   mysql:5.6   "docker-entrypoint.s…"   44 minutes ago      Up 44 minutes      0.0.0.0:3306->3306/tcp, :::3306->3306/tcp   db
134edd645e3f   centos      "/bin/bash"              About an hour ago   Up About an hour                                               os
64ebf94e8142   httpd       "httpd-foreground"       About an hour ago   Up About an hour   80/tcp                                      web

# ctrl + d: 컨테이너를 종료하고 빠져나옴
[root@134edd645e3f /]# exit
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED             STATUS             PORTS                                       NAMES
109beea4e76b   centos      "/bin/bash"              37 minutes ago      Up 13 minutes                                                  osb
03002e13460e   centos      "/bin/bash"              38 minutes ago      Up 38 minutes                                                  osa
763e42cf5bd9   mysql:5.6   "docker-entrypoint.s…"   45 minutes ago      Up 45 minutes      0.0.0.0:3306->3306/tcp, :::3306->3306/tcp   db
64ebf94e8142   httpd       "httpd-foreground"       About an hour ago   Up About an hour   80/tcp                                      web

 


 

docker container exec [옵션] <컨테이너 식별자> <실행할 명령> [인수]

가동 컨테이너에서 추가(새로운) 프로세스 실행

  • 가동 중인 컨테이너에서 새로운 프로세스를 실행할 때 사용
  • docker container attach 명령으로 연결을 시도했지만 쉘이 작동하지 않는 경우
  • 반드시 컨테이너가 실행 중인 상태에서만 명령 사용이 가능함
  • 새로운 프로세스는 종료되더라도 컨테이너는 유지됨
  • 옵션
옵션 설명
--detach, -d 명령을 백그라운드에서 실행
--interactive, -i 컨테이너의 표준 입력을 연다
--tty, -t tty 사용
--user, -u 사용자명 지정
  • 컨테이너에서 sh 실행
  • 가동 중인 osa 컨테이너에서 /bin/sh 실행
[root@localhost ~]# docker container ls
CONTAINER ID   IMAGE       COMMAND                  CREATED             STATUS             PORTS                                       NAMES
109beea4e76b   centos      "/bin/bash"              48 minutes ago      Up 24 minutes                                                  osb
03002e13460e   centos      "/bin/bash"              49 minutes ago      Up 49 minutes                                                  osa

[root@localhost ~]# docker container exec -it osa /bin/sh
sh-4.4#
sh-4.4#

# attach 명령은 새로운 프로세스를 실행할 수 없음
[root@localhost ~]# docker container attach osa /bin/sh
"docker container attach" requires exactly 1 argument.
See 'docker container attach --help'.

Usage:  docker container attach [OPTIONS] CONTAINER

Attach local standard input, output, and error streams to a running container

 

  • 컨테이너에서 echo 실행
[root@localhost ~]# docker container exec -it osa /bin/echo "Hello world"
Hello world

 


 

docker container top

가동 컨테이너의 프로세스 확인

  • 가동 중인 컨테이너에서 실행되고 있는 프로세스를 확인할 때 사용
  • 프로세스 확인
  • osa 컨테이너의 프로세스를 확인함
[root@localhost ~]# docker container top osa
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4067                4046                0                   10:46               pts/0               00:00:00            /bin/bash
root                5275                4046                0                   11:35               ?                   00:00:00            /bin/bash
root                5421                4046                0                   11:42               ?                   00:00:00            /bin/sh

 

docker container port

가동 컨테이너의 포트 전송 확인

  • 가동 중인 컨테이너에서 실행되고 있는 프로세스가 전송되고 있는 포트를 확인할 때 사용
  • 컨테이너의 포트 전송
[root@localhost ~]# docker container port db
3306/tcp -> 0.0.0.0:3306
3306/tcp -> :::3306
728x90

+ Recent posts