본문 바로가기

가상화/Kubernetes

[Docker] Container 관리

반응형

개요

구성환경

CentOS 7.6/ docker-ce-19.03

 

1. 컨테이너 목록 확인

  > docker ps : 현재 실행중인 컨테이너 목록

shell> docker ps
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                   PORTS               NAMES 
cdfb9b9576cf        ubuntu:latest       "/bin/bash"          9 hours ago         Up 4 minutes                                 my_ubuntu_1
shell>

  > docker ps -a : 모든 컨테이너 목록 확인(종료된 컨테이너 포함)

shell> docker ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                   PORTS               NAMES
cdfb9b9576cf        ubuntu:latest       "/bin/bash"          9 hours ago         Up 4 minutes                                 my_ubuntu_1
8426a724e439        httpd:2.4           "httpd-foreground"   11 hours ago        Exited (0) 9 hours ago                      my-apache-app
shell>

2. 컨테이너 기동/종료/재시작

SYNTAX) docker [ start | stop | restrt ] <컨테이너이름 or 컨테이너_ID>

shell> docker stop my_ubuntu_1 => 컨테이너 종료
my_ubuntu_1
shell> docker start my_ubuntu_1 => 컨테이너 구동
my_ubuntu_1
shell> docker stop cdfb9b9576cf => 컨테이너 ID를 이용한 종료
cdfb9b9576cf
shell>

3. 컨테이너 삭제

 3.1 선택 컨테이너 삭제

SYNTAX) docker rm <컨테이너이름 or 컨테이너_ID>

shell> docker ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                     PORTS               NAMES
cdfb9b9576cf        ubuntu:latest       "/bin/bash"          9 hours ago         Exited (0) 2 minutes ago                       my_ubuntu_1
8426a724e439        httpd:2.4           "httpd-foreground"   11 hours ago        Exited (0) 9 hours ago                         my-apache-app
shell> docker rm my_ubuntu_1
my_ubuntu_1
shell> docker ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                   PORTS               NAMES
8426a724e439        httpd:2.4           "httpd-foreground"   11 hours ago        Exited (0) 9 hours ago                       my-apache-app
shell>

 3.2 모든 컨테이너 삭제

 SYNTAX) docker rm `docker ps -a -q`     => ps -a -q 는 container id 출력

 - 컨테이너는 중지된 상태에서 삭제 가능

shell> docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
992f11789225        nginx:latest        "nginx -g 'daemon of…"   17 seconds ago      Exited (0) 8 seconds ago                       my_nginx_1
84fb47600ebd        ubuntu:latest       "/bin/bash"              3 minutes ago       Exited (0) 2 minutes ago                       my_ubuntu_1
shell> 
shell> docker rm `docker ps -a -q`
992f11789225
84fb47600ebd
shell> docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
shell>

4. 컨테이너 이름 변경

SYNTAX) docker rename oldName newName

shell> docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
d4b9a115eb3f        nginx:latest        "nginx -g 'daemon of…"   46 minutes ago      Exited (0) 45 minutes ago                       my_nginx_1
shell> docker rename my_nginx_1 my_nginx_2
shell> docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
d4b9a115eb3f        nginx:latest        "nginx -g 'daemon of…"   47 minutes ago      Exited (0) 45 minutes ago                       my_nginx_2
shell>

5. 컨테이너 세부 정보 출력

SYNTAX) docker inspect [OPTIONS] NAME|ID [NAME|ID...]

shell> docker inspect  my_nginx_1
[
    {
        "Id": "d4b9a115eb3fa74bd21f86dd652016053bed423fbd2a27c677c736584cef1070",
        "Created": "2019-12-27T01:03:59.581229667Z",
        "Path": "nginx",
        "Args": [
            "-g",
            "daemon off;"
        ],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,

===== 이하 생략 =====

6. 컨테이너 변경 내역 검사

  - 컨테이너와 원본 이미지를 비교하여 변경된 파일,디렉토리 출력

 심볼 

 - A :  파일 또는 디렉토리 추가됨

 - D :  파일 또는 디렉토리 삭제됨

 - C : 파일 또는 디렉토리 변경됨

shell> docker diff my_nginx_1
C /run
/run/nginx.pid
C /var
C /var/cache
C /var/cache/nginx
/var/cache/nginx/scgi_temp
/var/cache/nginx/uwsgi_temp
/var/cache/nginx/client_temp
/var/cache/nginx/fastcgi_temp
/var/cache/nginx/proxy_temp
shell>

7. 기존 이미지를 이용하여 새로운 이미지 생성

 7.1 현재 이미지 확인(예로 Debian 이미지를 사용)

shell > docker images
REPOSITORY                                                       TAG                 IMAGE ID            CREATED             SIZE
debian                                                           10.3                971452c94376        4 weeks ago         114MB

 7.2 현재 이미지를 이용하여 container 생성후 vim(vi) 패키지 설치

shell> docker run -it --name myDebian debian:10.3
root@cc17ff8f2c36:/# vi testfile
bash: vi: command not found => vim 패키지가 설치 되지 않아 vi를 실행할 수 없음
root@cc17ff8f2c36:/#apt update
Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
.... 중략 .... 
Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [7380 B]
Fetched 8336 kB in 8s (1047 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
root@cc17ff8f2c36:/# apt -y install vim => vim 패키지 설치
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libgpm2 vim-common vim-runtime xxd
Suggested packages:
  gpm ctags vim-doc vim-scripts
The following NEW packages will be installed:
  libgpm2 vim vim-common vim-runtime xxd
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 7425 kB of archives.
After this operation, 33.8 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 xxd amd64 2:8.1.0875-5 [140 kB]
..... 중략 .....
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode
Processing triggers for libc-bin (2.28-10) ...
root@cc17ff8f2c36:/#exit

 7.3 기존 컨테이너에서 신규 이미지 생성

  - docker commit -옵션 <컨테이너이름 or 컨테이너 ID> <리파지토리이름>

shell> docker commit -a "Prodution FliedCat" myDebian mine/mydebianimage:v1
sha256:539322a5cf61255784a2583b1e87e501f87686ab609ff663e4883c5f15ac1422
shell>
  • -a, --author=””: 저자의 정보를 설정.
  • -m, --message=””: 메시지를 설정
  • -p, --pause=true: 이미지를 생성하는 동안 컨테이너를 일시 정지

 7.4 신규 이미지에서 컨테이너 생성

shell> docker run -it --name myDebian2 mine/mydebianimage:v1
root@1ec07dcf8e83:/# vi testfile

** vi가 정상적으로 실행되는지 확인한다.

 7.5 신규 이미지 히스토리 확인

 - docker history image

shell> docker images
REPOSITORY                                                       TAG                 IMAGE ID            CREATED             SIZE
mine/mydebianimage                                               v1                  539322a5cf61        3 minutes ago       165MB
debian                                                           10.3                971452c94376        4 weeks ago         114MB

shell> docker history mine/mydebianimage:v1
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
539322a5cf61        9 minutes ago       bash                                            51.2MB
971452c94376        4 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B
           4 weeks ago         /bin/sh -c #(nop) ADD file:e05e45c33042db4ec…   114MB
shell>

 

 

반응형

'가상화 > Kubernetes' 카테고리의 다른 글

[Docker] swarm 모드에서 NFS 구성  (0) 2020.01.10
[Docker] Swarm 모드 구성  (0) 2020.01.09
[Docker] Docker Root 디렉토리 변경  (0) 2019.12.28
[Docker] Container 생성  (0) 2019.12.26
[Docker] Docker 설치/삭제 - Linux  (0) 2019.12.26