Docker
사용빈도가 예상보다 높지 않아서 그런지 자주 쓰는 커맨드를 제외하곤 항상 구글링을 한다.
매번 검색해서 찾아서 쓰는것도 나쁘진 않지만 이번 기회에 체계적으로 정리해서 내가 보고싶을때 마다 보기 위해 이 포스팅을 작성한다.
Docker
와 Docker Hub를 이용해서nginx
컨테이너를 생성부터 삭제까지 중간 중간 어떤 커맨드를 사용하는지 적어본다.
Docker
는 기본적으로 Root 권한이 필요하다. Docker
내부에서 Root directory에 접근할 권한이 없기 때문이다.
그래서 대부분 privileged=true
옵션을 사용한다고 하는데, 해당 옵션은 보안 문제가 있을 수 있으니 참고하기 바란다. Docker
가 정상적으로 설치되었는지 확인해보자.
$ sudo su
$ docker version
혹시나 Docker
를 설치했음에도 불구하고 위 스크립트가 정상적으로 실행되지 않는 경우에는 아래 과정을 진행하시길 바란다.
아래 과정은 현재 사용자 계정을 Docker
그룹에 추가하는 과정이다.
$ cat /etc/group | grep docker
docker:x:998:
Docker
그룹이 생성되어있지 않다면 아래 명령어로 Docker
그룹을 생성한다.
$ sudo groupadd docker
Docker
그룹에 사용자를 추가한다.
$ sudo usermod -aG docker <userName>
현재 그룹을 Docker
그룹으로 변경하고 다시 버전을 확인한다.
$ newgrp docker
$ docker version
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
REPOSITORY TAG IMAGE ID CREATED SIZE
docker images
명령어를 통해 현재는 보유한 이미지를 확인할 수 있다.
다운로드된 이미지는 /var/lib/docker/overlay2
에 저장된다.
컨테이너 이미지를 다운로드 하는 커맨드는 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
로 컨테이너 이미지 정상 다운로드를 확인한다. (다운로드가 안되는 경우는 드물다. 그냥 알아두기만 하자.)
작성중...