가동중인 도커 컨테이너 조작
가동 컨테이너 연결(docker container attach)
•
docker container attach [컨테이너ID]
◦
ctrl+c : 연결한 컨테이너 종료
◦
ctrl+p, ctrl+q : 연결한 컨테이너에서 분리
hbeen@DESKTOP-EDC39JU:~$ docker container attach centos1
[root@d7d783d0e237 /]#
Bash
복사
가동 컨테이너에서 프로세스 실행(docker container exec)
•
docker container exec [옵션] [컨테이너ID] [실행할 명령] [인수]
◦
가동중인 컨테이너에서 새로운 프로세스를 실행
◦
백그라운드에서 실행되고 있는 컨테이너에 액세스하고 싶을 때 쉘이 작동하지 않는 경우는 attach로 명령 접수 불가 → exec 명령 사용
hbeen@DESKTOP-EDC39JU:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5b62df9e574 nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 80/tcp sad_cannon
hbeen@DESKTOP-EDC39JU:~$ docker container exec -it sad_cannon /bin/bash
root@b5b62df9e574:/#
Bash
복사
가동 컨테이너에서 프로세스 확인(docker container top)
•
docker container top [컨테이너ID]
hbeen@DESKTOP-EDC39JU:~$ docker container top sad_cannon
UID PID PPID C STIME TTY TIME CMD
root 2633 2612 0 05:19 ? 00:00:00 nginx: master process nginx -g daemon off;
uuidd 2688 2633 0 05:19 ? 00:00:00 nginx: worker process
Bash
복사
가동 컨테이너의 포트 전송 확인(docker container port)
•
docker container port [컨테이너ID]
hbeen@DESKTOP-EDC39JU:~$ docker container run -d --name "webserver" -p 8080:80 nginx
7ead298d50134bd03f2121dd4408a4f6219e02352d009df2ede5b09f638d1266
hbeen@DESKTOP-EDC39JU:~$ docker container port webserver
80/tcp -> 0.0.0.0:8080
Bash
복사
컨테이너의 이름 변경(docker container rename)
•
docker container rename [변경전] [변경후]
hbeen@DESKTOP-EDC39JU:~$ docker container rename webserver nginxserver
hbeen@DESKTOP-EDC39JU:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7ead298d5013 nginx "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp nginxserver
Bash
복사
컨테이너 안의 파일 복사(docker container cp)
•
docker container cp [컨테이너ID:컨테이너 파일] [호스트 파일]
•
docker container cp [호스트 파일] [컨테이너ID:컨테이너 파일]
hbeen@DESKTOP-EDC39JU:~$ docker container cp nginxserver:/etc/nginx/nginx.conf /tmp/nginx.conf
hbeen@DESKTOP-EDC39JU:~$ ls -la /tmp
total 12
drwxrwxrwt 2 root root 4096 Feb 13 17:34 .
drwxr-xr-x 20 root root 4096 Feb 13 14:11 ..
-rw-r--r-- 1 hbeen hbeen 643 Nov 24 2020 nginx.conf
Bash
복사
컨테이너 조작의 차분 확인(docker container diff)
•
docker container diff [컨테이너ID]
◦
컨테이너가 이미지로부터 생성되었을 때와 달라진 점(차분)을 확인
hbeen@DESKTOP-EDC39JU:~$ docker container run -it --name "centos" centos
[root@7701372fec4b /]# useradd newuser
[root@7701372fec4b /]# exit
exit
hbeen@DESKTOP-EDC39JU:~$ docker container diff centos
C /var
C /var/log
C /var/log/lastlog
C /var/spool
C /var/spool/mail
A /var/spool/mail/newuser
C /etc
C /etc/shadow
A /etc/subgid-
A /etc/subuid-
C /etc/shadow-
C /etc/group
C /etc/subuid
C /etc/gshadow-
C /etc/passwd-
C /etc/group-
C /etc/gshadow
C /etc/passwd
C /etc/subgid
C /home
A /home/newuser
A /home/newuser/.bash_logout
A /home/newuser/.bash_profile
A /home/newuser/.bashrc
C /root
A /root/.bash_history
Bash
복사
•
모든 도커 컨테이너를 한 대의 호스트 머신(물리 머신)에서 작동시키는 일은 드물며, 시스템의 트래픽 증감이나 가용성 요건, 신뢰도 요건 등을 고려한 후에 여러 대의 호스트 머신으로 된 분산 환경을 구축하여 오케스트레이션 툴을 이용해 컨테이너를 관리하는 것이 일반적