[TIL] Docker Command : December 15, 2021

RE_BROTHER·2021년 12월 15일
0

TIL

목록 보기
40/41
post-thumbnail

Docker Command

Docker 사용빈도가 예상보다 높지 않아서 그런지 자주 쓰는 커맨드를 제외하곤 항상 구글링을 한다.
매번 검색해서 찾아서 쓰는것도 나쁘진 않지만 이번 기회에 체계적으로 정리해서 내가 보고싶을때 마다 보기 위해 이 포스팅을 작성한다.
DockerDocker Hub를 이용해서 nginx 컨테이너를 생성부터 삭제까지 중간 중간 어떤 커맨드를 사용하는지 적어본다.

intro

Docker는 기본적으로 Root 권한이 필요하다. Docker 내부에서 Root directory에 접근할 권한이 없기 때문이다.
그래서 대부분 privileged=true 옵션을 사용한다고 하는데, 해당 옵션은 보안 문제가 있을 수 있으니 참고하기 바란다. Docker가 정상적으로 설치되었는지 확인해보자.

$ sudo su
$ docker version

혹시나 Docker를 설치했음에도 불구하고 위 스크립트가 정상적으로 실행되지 않는 경우에는 아래 과정을 진행하시길 바란다.
아래 과정은 현재 사용자 계정을 Docker 그룹에 추가하는 과정이다.

Docker group 확인

$ cat /etc/group | grep docker
docker:x:998:

Docker 그룹이 생성되어있지 않다면 아래 명령어로 Docker 그룹을 생성한다.

$ sudo groupadd docker

사용자 추가

Docker 그룹에 사용자를 추가한다.

$ sudo usermod -aG docker <userName>

Docker group init

현재 그룹을 Docker 그룹으로 변경하고 다시 버전을 확인한다.

$ newgrp docker
$ docker version

Docker-hub

Docker-Hub에는 무수히 많은 컨테이너들이 존재한다. 마이크로소프트와 같은 대형 회사에서 기본적으로 제공해주는 컨테이너, 일반 사용자들이 특수한 목적을 위해 구성해놓은 컨테이너, 개인 목적으로 업로드된 컨테이너 등등..

이러한 컨테이너들을 어떻게 야무지게 사용하느냐에 따라서 의미없는 에너지 낭비를 피할 수 있다.
예시로 nginx 컨테이너 이미지를 다운로드하여 실행해보도록 하자.

$ docker search
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                             Official build of Nginx.                        15928     [OK]
jwilder/nginx-proxy               Automated Nginx reverse proxy for docker con…   2101                 [OK]
richarvey/nginx-php-fpm           Container running Nginx + PHP-FPM capable of…   820                  [OK]
jc21/nginx-proxy-manager          Docker container for managing Nginx proxy ho…   288
linuxserver/nginx                 An Nginx container, brought to you by LinuxS…   160
tiangolo/nginx-rtmp               Docker image with Nginx using the nginx-rtmp…   147                  [OK]
...

nginx를 검색해본 결과 공식으로 제공되는 이미지가 있고, 그 외에 일반 사용자들이 업로드해놓은 이미지들이 있다.
공식으로 제공되는 nginx 이미지를 다운로드하자.

docker images

$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE

docker images 명령어를 통해 현재는 보유한 이미지를 확인할 수 있다.

image download directory

다운로드된 이미지는 /var/lib/docker/overlay2에 저장된다.

image download

컨테이너 이미지를 다운로드 하는 커맨드는 docker pull <IMAGENAME>:<VERSION>이다. 버전을 생략할 경우 최신 버전으로 다운로드된다.

$ docker pull nginx

Using default tag: latest
latest: Pulling from library/nginx
e5ae68f74026: Pull complete
21e0df283cd6: Pull complete
ed835de16acd: Pull complete
881ff011f1c9: Pull complete
77700c52c969: Pull complete
44be98c0fab6: Pull complete
Digest: sha256:9522864dd661dcadfd9958f9e0de192a1fdda2c162a35668ab6ac42b465f0603
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

따로 <VERSION>을 선택하지 않았기 때문에 latest 버전으로 설치된다.

$ docker images

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    f652ca386ed1   13 days ago   141MB

$ sudo ls -alFh /var/lib/docker/overlay2/
total 36K
drwx--x---  9 root root 4.0K Dec 16 02:02 ./
drwx--x--- 13 root root 4.0K Dec 14 00:53 ../
drwx--x---  3 root root 4.0K Dec 16 02:02 11a95abfa3e2b45cab9113eb447d98abc70b6e1a84f9435cea419c811f147b1c/
drwx--x---  4 root root 4.0K Dec 16 02:02 2d471323df269aeaff19c810a186cf36e48e3034031cbab8c03ed89e6302fb8e/
drwx--x---  4 root root 4.0K Dec 16 02:02 8235dae3e16fe4df2032d1ab2fd49c3215e173109743502715bd1f61b49c2bbe/
drwx--x---  4 root root 4.0K Dec 16 02:02 8d5040887ffef2eaeae14466a20691aaa2bb220fcc1b0e368b361ee2799b79c6/
drwx--x---  4 root root 4.0K Dec 16 02:02 9ea30971c486bc54be8175e72cb8dac86e08928a4a49dace099748bdd4da7e74/
drwx--x---  4 root root 4.0K Dec 16 02:02 c7422c3c00ac2ff7487fd66d50407f796e316436e7779fede1e3244bbcf80c1b/
drwx------  2 root root 4.0K Dec 16 02:02 l/

docker images, sudo ls -alFh /var/lib/docker/overlay2로 컨테이너 이미지 정상 다운로드를 확인한다. (다운로드가 안되는 경우는 드물다. 그냥 알아두기만 하자.)


작성중...

profile
I hope the All-Rounder Developer & Researcher

0개의 댓글