Docker 설치와 튜토리얼
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을 남겨주세요.
Leave a comment