1. Docker
Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다.
Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드,
런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. Docker를 사용하면 환경에 구애받지 않고
애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다.
Docker는 코드를 실행하는 표준 방식을 제공합니다. Docker는 컨테이너를 위한 운영 체제입니다.
가상 머신이 서버 하드웨어를 가상화하는 방식과 비슷하게 컨테이너는 서버 운영 체제를 가상화합니다.
Docker는 각 서버에 설치되며 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령을 제공합니다.
2. Docker의 장점
3. AWS Docker 사용
4. 설치 및 사용
Docker는 리눅스 컨테이너를 구현해주는 어플리케이션이다. 윈도우즈 환경에서 Docker를 실행하고
이곳에서 리눅스용 프로그램을 개발하여 볼 수 있다. 리눅스 컨테이너를 만들어 보는 이유는 많은 cloud 환경에서
리눅스컨테이너를 지원하기 때문이다. 컨테이너(Container)는 격리된 환경에서 각각 독립적인 프로세스로 실행된다.
(1) WLS2 프로그램 설치
윈도우즈에 WLS2(Windows Subsystem for Linux 2)를 설치하여 윈도우즈에서 리눅스를 사용할 수 있는 환경을
구축하고 Docker를 설치해 보도록 한다.
PC에서 PowerShell을 관리자권한으로 실행하고 다음 명령을 입력하고 윈도우즈를 재부팅한다.
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
재부팅이 완료되면 다음의 패키지를 설치한다.
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Windows PowerShell을 관리자로 실행하고 다음의 명령어를 입력한다.
ps> wsl --set-default-version 2
ps> wsl -l -v
Hyper-V 기능이 설정되어 있는지 확인한다.
(2) Docker DeskTop 설치
윈도우즈용 프로그램을 다운로드 받고 실행하여 설치한다.
https://www.docker.com/products/docker-desktop/
설치가 완료되면 프로그램을 시작한다. 특별히 설정없이 Next 버튼만 클릭하였다.
도커를 설치하면 도커 엔진의 시스템 서비스도 같이 실행됩니다. 클라이언트는 이 서비스 프로세스에
명령어를 보내는 방식으로 작동합니다.
(3) Docker 명령어
Docker DeskTop을 실행하고 PowerShell에서 명령어를 사용할 수 있다.
또는 Docker DestTop에서 GUI로 클릭하여 여러 명령어를 실행할 수 있다.
NGINX 설치(웹서버)
ps> docker pull nginx 또는 DeskTop에서 클릭으로 실행
ps> docker run --name nginx-container -d -p 80:80 -p 22:22 nginx:latest <== 컨테이너 시작
Docker는 이미지를 자동으로 다운로드 받고 실행해 준다. docker ps로 실행한 컨테이너를 확인합니다.
ps> docker ps -a <- 실행되는 container_id 를 알수 있다. (별도의 powershell에서 실행)
ps> docker images <- 생성된 이미지 리스트를 볼 수 있다.
ps> docker container ls <- 컨테이너의 리스트를 본다.
컨테이너에서 실행한 웹서버에 접속을 하여 보자. 웹브라우저로 다음과 같이 접속하여 본다.
PC에 컨테이너를 실행하고 있는 것이다.
ps> docker exec -it nginx-container bash <== 터미널과 연결
# nginx -version
# service nginx start
# service nginx status
웹브라우저에서 웹서버가 실행되고 있음을 알 수 있다.
기본 root폴더는 /usr/share/nginx/html 로 설정되어 있다.
> docker stop <container_id > <-- 실행을 정지(stop) 실행은 start
> docker rm <container_id > <-- 컨테이너 제거
PC에 테스트로 여러 프로그램을 설치하다 보면 시스템이 복잡해지고 환경설정 문제로 골치가 아프다.
하나의 프로그램 환경설치를 맞추다 보면 다른 환경이 맞지를 않는다. 이런 경우 Docker가 해결책이
될 수 있다. 프로그램이 컨테이너 안에서만 실행됨으로 자유롭게 환경설치를 하여도 PC에는 영향이 없다.