블록체인
블록체인

가동 컨테이너 조작

가동중인 도커 컨테이너 조작

가동 컨테이너 연결(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
복사
모든 도커 컨테이너를 한 대의 호스트 머신(물리 머신)에서 작동시키는 일은 드물며, 시스템의 트래픽 증감이나 가용성 요건, 신뢰도 요건 등을 고려한 후에 여러 대의 호스트 머신으로 된 분산 환경을 구축하여 오케스트레이션 툴을 이용해 컨테이너를 관리하는 것이 일반적