Docker 설치와 튜토리얼

2 minute read

Docker 설치와 작동 확인(Linux)

설치 사전 준비
apt 피키지 리스트를 업데이트

1
sudo apt update


HTTPS를 경유하여 리포지토리를 사용할 수 있도록 명령어 실행

1
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common


Docker의 공식 GPG 키를 추가

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


GPG 키 확인

1
sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]


Docker의 리포지토리를 추가

1
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"


apt 피키지 리스트를 업데이트

1
sudo apt udocpdate


Docker 설치하기

1
sudo apt-get install docker-ce



Docker 작동 확인

docker container run 명령
docker container run [Docker 이미지명] [실행할 명령어]

docker container run ubuntu:latest /bin/echo 'Hello world'
Hello world

참고사항
현재 Docker에서 ubuntu:latest 가 깔려있기 때문에 Pull request가 요청되지는 않는다.
만약 Image를 가지고 있지 않는다면 Pull request로 Image요청후 명령어가 실행된다.

docker version 확인
docker version

docker version
Client:
 Version:           18.09.6
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        481bc77
 Built:             Sat May  4 02:35:57 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.6
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       481bc77
  Built:            Sat May  4 01:59:36 2019
  OS/Arch:          linux/amd64
  Experimental:     false


docker 실행환경 확인
docker system info

docker system info

Container수, Docker 버전, 스토리지 드라이버 정보, OS 종류, 아키텍쳐등 Docker 실행 환경의 상세 설정이 표시

docker 디스크 이용 상황
docker system df

docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              3                   2                   5.711GB             81.74MB (1%)
Containers          36                  3                   9.425GB             2.644GB (28%)
Local Volumes       14                  2                   3.221GB             3.221GB (100%)
Build Cache         0                   0                   0B       

상세 내용 확인의 경우 -v 옵션을 지정


웹 서버 작동

오픈소스 웹 서버인 Nginx 환경을 구축
Ngix는 대량의 요청을 처리하는 대규모 사이트에서 주로 이용하고 있으며, 리버스 프록시나 로드밸런서와 같은 기능도 갖고 있다.


Docker Image 다운로드
Docker 컨테이너의 바탕이 되는 Docker 이미지 다운로드
docker pull [Image 이름]

docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
b8f262c62ec6: Pull complete
e9218e8f93b1: Pull complete
7acba7289aa3: Pull complete
Digest: sha256:aeded0f2a861747f43a01cf1018cf9efe2bdd02afd57d2b11fcc7fcadc16ccd1
Status: Downloaded newer image for nginx:latest


Docker Container 실행
docker container run --name [Container 이름 지정] -d -p [외부 접속 Port: 내부 연결 Port] [Image 이름]

docker container run --name webserver -d -p 80:80 nginx

이미지 nginx를 사용하여 webserver라는 이름의 Docker 컨테이너를 기동시키는 명령어
80:80: 앞의 Port number는 외부에서 들어오는 Port 번호
뒤의 Port number는 연결한 Port 번호

796f8884473420a81073492f5b4ebfbe23dbf89d6e3e8ac2f811c63459dc91d1

Container 생성시 Container를 고유하게 식별하기 위하여 Container ID 부여
실제 접속시

Container 상태 확인
docker container ps

docker container ps
CONTAINER ID 796f88844734
IMAGE nginx
COMMAND "nginx -g 'daemon of…"
CREATED minutes ago
PORTS 0.0.0.0:80->80/tcp


webserver라는 이름의 Docker 컨테이너에서 Nginx 서버 프로세스가 시작되어, 컨테이너의 80번 포트를 정송하고 있다.

특정 Container 상태 확인
docker container stats [Container 이름]

docker container stats webserver
CONTAINER ID 796f88844734
Name webserver
CPU % 0.00%
... ...
PIDS 2


Container 정지
docker stop [Container 이름]

docker stop webserver


Container 재시작
docker start [Container 이름]

docker start webserver



참조: 완벽한 IT 인프라 구축을 위한 Docker
코드에 문제가 있거나 궁금한 점이 있으면 wjddyd66@naver.com으로 Mail을 남겨주세요.

Categories:

Updated:

Leave a comment