반응형

 

 

 

 

 

Docker

Ubuntu 환경에서 Docker 명령어 사용하기


 

Ubuntu 20.04.4 LTS 환경으로 테스트 진행

 

 

 

 

 

 

 

 

Docker history 명령으로 이미지 history 확인하기

 

history 명령은 동작중인 컨테이너에 입력된 명령어 history를 확인하는 명령어입니다.

이전 글에서 dockerfile로 만든 nginx 컨테이너입니다. 만들면서 사용된 RUN 커맨드가 history에 기록됩니다.

$ sudo docker ps -a
CONTAINER ID   IMAGE           COMMAND   CREATED          STATUS          PORTS                                        NAMES
61edbce54f41   nginxtest:0.1   "nginx"   18 minutes ago   Up 18 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   jinsu-nginx
$ 

$sudo docker history [NAMES]:[TAG]

EX)
$ sudo docker history nginxtest:0.1
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
740379f9b11b   29 minutes ago   /bin/sh -c #(nop)  EXPOSE 443                   0B        
929f903e2540   29 minutes ago   /bin/sh -c #(nop)  EXPOSE 80                    0B        
ed64817830f8   29 minutes ago   /bin/sh -c #(nop)  CMD ["nginx"]                0B        
2282172fd290   29 minutes ago   /bin/sh -c #(nop) WORKDIR /etc/nginx            0B        
de12d0c872bc   29 minutes ago   /bin/sh -c #(nop)  VOLUME [/data /etc/nginx/…   0B        
3da13963d2b2   29 minutes ago   /bin/sh -c chown -R www-data:www-data /var/l…   0B        
94c41b3f9ed3   29 minutes ago   /bin/sh -c echo "\n daemon off;" >> /etc/ngi…   1.61kB    
d6e387a15b8b   29 minutes ago   /bin/sh -c apt-get install -y nginx             21.1MB    
2f20874facdc   29 minutes ago   /bin/sh -c apt-get update                       14.1MB    
abbb27fabc8c   29 minutes ago   /bin/sh -c #(nop)  MAINTAINER jinsu <djwlstn…   0B        
13b66b487594   14 months ago    /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      14 months ago    /bin/sh -c mkdir -p /run/systemd && echo 'do…   7B        
<missing>      14 months ago    /bin/sh -c [ -z "$(apt-get indextargets)" ]     0B        
<missing>      14 months ago    /bin/sh -c set -xe   && echo '#!/bin/sh' > /…   195kB     
<missing>      14 months ago    /bin/sh -c #(nop) ADD file:276b5d943a4d284f8…   196MB     
$

 

 

 

 

Docker cp 명령으로 복사하기

 

cp 명령은 컨테이너에서 있는 파일을 복사하는 명령입니다.

명령어 입력 전
$ ls -al
total 12
drwxrwxr-x 2 djwlstn123 djwlstn123 4096 Jun  2 09:42 .
drwxr-xr-x 5 djwlstn123 djwlstn123 4096 Jun  2 08:54 ..
-rw-rw-r-- 1 djwlstn123 djwlstn123  325 Jun  2 08:54 Dockerfile
$ 

동작중인 컨테이너 확인
$ sudo docker ps -a
CONTAINER ID   IMAGE           COMMAND   CREATED          STATUS          PORTS                                        NAMES
61edbce54f41   nginxtest:0.1   "nginx"   30 minutes ago   Up 30 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   jinsu-nginx
$ 

$ sudo docker cp [NAMES]:[경로] [저장경로]

EX)
$ sudo docker cp jinsu-nginx:/etc/nginx/nginx.conf ./            

명령어 입력 후
$ ls -al
total 16
drwxrwxr-x 2 djwlstn123 djwlstn123 4096 Jun  2 09:44 .
drwxr-xr-x 5 djwlstn123 djwlstn123 4096 Jun  2 08:54 ..
-rw-rw-r-- 1 djwlstn123 djwlstn123  325 Jun  2 08:54 Dockerfile
-rw-r--r-- 1 root       root       1615 Jun  2 09:05 nginx.conf
$

 

 

 

 

Docker commit 명령으로 컨테이너 변경된 내용 이미지로 생성하기

 

commit 명령은 컨테이너의 추가로 변경된 사항을 이미지 파일로 생성하는 명령입니다.

명령어 입력 전
$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginxtest    0.1       740379f9b11b   43 minutes ago   232MB
ubuntu       14.04     13b66b487594   14 months ago    197MB
$

$ sudo docker commit [옵션] [컨테이너 이름] [이미지 이름]:[태그]

EX)
$ sudo docker commit jinsu-nginx nginxtest:0.2
sha256:45fe3bfa31b6a7b9eb73603decb26779e348acd6e41ecd176cbeaf0c54c0c967
$ 

명령어 입력 후
$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginxtest    0.2       45fe3bfa31b6   11 seconds ago   232MB
nginxtest    0.1       740379f9b11b   46 minutes ago   232MB
ubuntu       14.04     13b66b487594   14 months ago    197MB
$

 

 

 

 

Docker diff 명령으로 컨테이너 변경된 파일 확인하기

 

diff 명령은 컨테이너가 실행되면서 변경된 파일 목록을 출력하여 보여줍니다.

비교 기준은 컨테이너 생성한 이미지입니다.

  • A : 추가된 파일
  • C : 변경된 파일
  • D : 삭제된 파일
$ sudo docker diff [컨테이너 이름]

EX)
$ sudo docker diff jinsu-nginx
A /data
C /etc
C /etc/nginx
A /etc/nginx/site-enabled
C /var
C /var/lib
C /var/lib/nginx
A /var/lib/nginx/body
A /var/lib/nginx/fastcgi
A /var/lib/nginx/proxy
A /var/lib/nginx/scgi
A /var/lib/nginx/uwsgi
C /run
A /run/nginx.pid
$

 

 

 

 

 

 

Docker inspect 명령으로 이미지와 컨테이너 세부 정보 확인하기

 

inspect 명령은 이미지와 컨테이너의 세부 정보를 출력하는 명령입니다.

$ sudo docker inspect [이미지] or [컨테이너 이름]

EX)
$ sudo docker inspect jinsu-nginx
[
    {
        "Id": "61edbce54f412f5445422515247b95af982c6c99ad24d758c855056c8d69ab28",
        "Created": "2022-06-02T09:08:38.839283565Z",
        "Path": "nginx",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 94810,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-06-02T09:08:39.140534723Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
...
..
.
내용이 길게 출력중

 

 

 

 

반응형

+ Recent posts