본문 바로가기
Docker

[Docker] Docker 컨테이너 간단한 실습 예제

by NJ94 2024. 2. 6.

1. 컨테이너 동작 방식

1.1 Docker Hub 이미지검색

$ docker search nginx

NAME                               DESCRIPTION                                      STARS     OFFICIAL
nginx                              Official build of Nginx.                         19573     [OK]
unit                               Official build of NGINX Unit: Universal Web …   20        [OK]
nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                   140       
nginx/nginx-ingress                NGINX and  NGINX Plus Ingress Controllers fo…   88

 

1.2 Docker Hub 이미지 다운로드

$ docker pull nginx

Using default tag: latest
latest: Pulling from library/nginx
c57ee5000d61: Pull complete 
9b0163235c08: Pull complete 
f24a6f652778: Pull complete 
9f3589a5fc50: Pull complete 
f0bd99a47d4a: Pull complete 
398157bc5c51: Pull complete 
1ef1c1a36ec2: Pull complete 
Digest: sha256:5f44022eab9198d75939d9eaa5341bc077eca16fa51d4ef32d33f1bd4c8cbe7d
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

 

1.3 Docker 설치된 이미지 확인

$ docker images

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         latest    b690f5f0a2d5   3 months ago   187MB

 

1.4. 설치된 이미지 저장소 위치 확인 

  • /var/lib/docker/overlay2는 도커 컨테이너의 레이어 저장소(Layer Storage)
  • 도커 데몬이 컨테이너 레이어를 저장하는 디렉토리
  • 여기에는 도커 이미지의 각 레이어와 컨테이너의 변화를 저장하는 파일이 포함되어 있음
$ cd var/lib/docker/overlay2
$ cd ls -l

//Docker Hub에서 다운로드 받은 nginx의 이미지 레이어가 저장되어 있음을 확인가능
drwx--x--- 4 root root 4096  2월  6 18:10 1ff278b7551e4e2b727d23fb5fb0d330a9492decfe17bc156faf2729e383cc56
drwx--x--- 4 root root 4096  2월  6 18:10 29f68b726d6b7c0a6adf6045498c9d318e747b391a0074c56baea64716eba724
drwx--x--- 4 root root 4096  2월  6 18:10 30ee656836987d05e137b5a801efa0802210c75521a725a42ca2520be7a5fa03
drwx--x--- 4 root root 4096  2월  6 18:10 360c11262d220ffb3d810cc4cc93ac9d25d12353214daee8ffb7084edd686a74
drwx--x--- 3 root root 4096  2월  3 15:43 44efdcfad1ade1514f7b20b02bc120a08e7567e40ed6684b1182cdc1d64b972

 

1.5 컨테이너 생성 및 실행

다운로드 받은 이미지를 기반으로 컨테이너 생성 및 실행 ex) docker run

  • -d: 백그라운드에서 실행
  • --name: 컨테이너 이름 지정
  • -p: 호스트와 컨테이너 간의 포트 매핑 설정
$ docker run --name web -d -p 80:80 nginx

//실행결과
: 1dd7b7aef7baeb4fc717123d43ee052e07145d730cb8afc9aa606da1a4c0e4b6

 

1.6 도커 실행 여부 확인

$ docker ps

CONTAINER ID   IMAGE     COMMAND                   CREATED          STATUS          PORTS                               NAMES
1dd7b7aef7ba   nginx     "/docker-entrypoint.…"   27 seconds ago   Up 25 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web

 

1.6 ngnix 실행

$ curl localhost:80

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

 

1.7 컨테이너 중지

$ docker stop <container name>
//docker stop web

 

1.8 컨테이너 삭제

$ docker rm web

 

1.9 이미지 삭제

$ docker rmi nginx

Untagged: nginx:latest
Untagged: nginx@sha256:5f44022eab9198d75939d9eaa5341bc077eca16fa51d4ef32d33f1bd4c8cbe7d
Deleted: sha256:b690f5f0a2d535cee5e08631aa508fef339c43bb91d5b1f7d77a1a05cea021a8
Deleted: sha256:2599673318db03e2df10bca9b4167be668b9579d72c3cedd1436a0ddcbc4686f
Deleted: sha256:3dfa00af383371dcbb76086fde405df32b75247bdf6db81110d992284140c5a3
Deleted: sha256:22b6d0744dd5a77166622ec69cc6520f63c9df0dd65b9c96934658c3684aef14
Deleted: sha256:da1a2f0bf2f9a1e0eaf448084f492dfe868dc0a64ca3e0e30f3b9be6ded452f0
Deleted: sha256:9cf4de78149512efb3285ea0da170ebcd38cdca48d5eb90030400663db6facfb
Deleted: sha256:61901066ba33b727b13c970b9d7b7ed9a3056e30de96e835c9b01f4e73c4659a
Deleted: sha256:fb1bd2fc52827db4ce719cc1aafd4a035d68bc71183b3bc39014f23e9e5fa256


$ root@docker-ubuntu-example:/var/lib/docker/overlay2# ls
-> 레이어 저장소 비워져있음

 

참고

[따배도] 3-2 도커 컨테이너 살펴보기: 실습편

https://www.youtube.com/watch?v=gNsjVOuF2jY&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=10