종달랩 종다리 이야기

Docker run 옵션 및 활용

Computer Science/클라우드-대용량 아키텍처
반응형

Docker run 명령어를 정리합니다.

 

일반적으로 docker 이미지를 만들었다면 다음과 같이 실행하게 됩니다.

 

docker run <옵션> <이미지> <명령> <매개변수>

 

다음과 같은 형태로 만들어지게 됩니다.

docker run -it -p 8080:80 --nmae mydockerimg

여기서 사용되는 다양한 옵션들에 대해서 정리해보면 다음과 같습니다.

 

  • -i, --interactive
    • 표준 입력(stdin)을 활성화하며, 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지합니다.
    • 보통 이 옵션을 사용하여 Bash 에 명령을 입력합니다.
  • -t, --tty
    • TTY 모드(pseudo-TTY)를 사용합니다.
    • Bash를 사용하려면 이 옵션을 설정해야 합니다.
    • 이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만, 셸이 표시되지 않습니다.
  • --name
    • 컨테이너 이름을 설정합니다. 사용할 이름과 표시할 이름을 설정할 수 있습니다.
  • -d, --detach
    • Detached 모드입니다.
    • 보통 데몬 모드라고 부르며, 컨테이너가 백그라운드로 실행됩니다.
  • -p, --publish
    • 호스트와 컨테이너의 포트를 연결합니다. (포트포워딩)
    • <호스트 포트>:<컨테이너 포트>
      • -p 80:80
  • --privileged
    • 컨테이너 안에서 호스트의 리눅스 커널 기능(Capability)을 모두 사용합니다.
    • 호스트의 주요 자원에 접근할 수 있습니다.
  • --rm
    • 프로세스 종료시 컨테이너 자동 제거
  • --restart
    • 컨테이너 종료 시, 재시작 정책을 설정합니다.
      • --restart="always"
  • -v, --volume
    • 데이터 볼륨을 설정입니다.
    • 호스트와 컨테이너의 디렉토리를 연결하여, 파일을 컨테이너에 저장하지 않고 호스트에 바로 저장합니다. (마운트)
  • -u, --user
    • 컨테이너가 실행될 리눅스 사용자 계정 이름 또는 UID를 설정합니다.
      • --user root
  • -e, --env
    • 컨테이너 내에서 사용할 환경 변수를 설정합니다.
    • 보통 설정 값이나 비밀번호를 전달할 때 사용합니다.
      • -e GRANT_SUDO=yes
  • --link
    • 컨테이너끼리 연결합니다.
    • [컨테이너명 : 별칭]
      • --link="db:db"
  • -h, --hostname
    • 컨테이너의 호스트 이름을 설정합니다.
  • -w, --workdir
    • 컨테이너 안의 프로세스가 실행될 디렉터리를 설정합니다.
  • -a, --attach
    • 컨테이너에 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr) 를 연결합니다.
  • -c, --cpu-shares
    • CPU 자원 분배 설정입니다.
    • 기본 값은 1024이며, 각 값은 상대적으로 적용됩니다.
  • -m, --memory
    • 메모리 한계를 설정합니다.
    • <숫자><단위> 형식이며 단위는 b, k, m, g 를 사용할 수 있습니다
      • --memory=”100000b”
  • --gpus
    • 컨테이너에서 호스트의 NVIDIA GPU 를 사용할 수 있도록 설정합니다.
      • 호스트는 NVIDIA GPU 가 장착 된 Linux 서버여야하며,
      • NVIDIA driver 가 설치되어 있어야하고,
      • docker 19.03.5 버전 이상이어야합니다.
    • GPU 모두 사용하기
      • --gpus all
    • GPU 지정해서 사용하기
      • --gpus ‘”device=0,1”’
  • --security-opt
    • SELinux, AppArmor 옵션을 설정합니다.
      • --security-opt=”label:level:TopSecret”

참조한 사이트는 다음과 같습니다.

도커의 동작 시각화 자료

 

반응형

Free NAS : 남아도는 컴퓨터리소스 응용 - OS 선정

Computer Science/클라우드-대용량 아키텍처
반응형

회사를 운영하다 보면 회사의 남는 리소스, 그중에 가장 아까운것들이 컴퓨터와 HDD/SSD등이다.

누군가 퇴사를 하게 되면, 그 컴퓨터를 다른 신입에게 주기에는 이미 시기가 많이 지나서 할당해주기도 그렇고,

그렇다고 이게 못쓸만큼 오래되지도 않았고..

 

재고에서 없애버리기에도 아깝고, 그렇다고 안버리기에는 쓸사람도 없고..

 

컴터에 환장한 친구들이 있으면 그들을 위한 장난감으로 던져주면 좋아라 할텐데,

딱히 그런 오타쿠스러운 친구들도 별로 없을때는 정말 아깝다.

 

당근마켓에 던지기에도 안타까운 이것들을 어떻게 하면 효율적으로 활용할까 생각하던 과정에,

일부 컴퓨터들의 리소스를 모아서 NAS를 만들면 어떨까 생각이 들었다.

 

일반 NAS를 구매하기에는 매우 가격이 비싸지만, 케이스만 대충 그럴싸한걸 구매하던지, 

아니면 기존 케이스에서 HDD/SDD들만 잘 고정시킬 수 있으면 가능할 것 같았다.

 

이것 저것 자료를 조사해본 결과 다음과 같은 순서대로 만들어 보기로 하였다.

 

1. NAS OS 및 환경 설정

2. 회사의 리소스 수집

3. 설치하고, 회사내트워크에서 운영

4. 외부에서 접속할 수 있도록 설정 및 운영

5. 업무의 효율성 득실계산

 

우선은, OS는 여러가지를 선택할 수 있었다.

 

TrueNAS : FreeNAS에서 시작하여 가장 많이 쓰는것으로 파악되는 NAS OS

헤놀로지 : 시놀로지 정품에서 파생된 정식은 아닌것으로 확인되는 NAS OS

XigmaNAS : Open Source기반의 Storage NAS로 FreeBSD기반이 특징이다.

OpenMediaVault : Debian Linux에 기반한 NAS 이다. 다양한 네트워크 서비스를 제공하는것이 특징이다. 

OpenFiler : x86_64시스템을 완전한 NAS로 바꿔주는 기능을 제공한다고 한다. 리눅스 커널기반 서비스이다.

Rockstor : Linux 및 BTRFS기반 NAS OS. SMB(Small and Midsize Business)클라우드 서버를 구축할 수 있다.

PetaSAN : Open Source Scale-Out SAN 솔루션으로 대규모 스케일관리와 높은 성능을 제공한다. 노드관리를 통해서 확장성과 운영성을 제공하는것이 특징이다. 

ESOS (Enterprise Storage OS) : SCST프로젝트에 기반한 기업용 Storage OS로 분산리눅스를 기초하고 있다. 

CryptoNAS : CryptoNAS 프로젝트는 데이터 암호화를 대중화하기 위해 시작되었다. CryptoNAS live-CD는 복잡한 없이 데이터를 암호화하기 위해 만들어졌다고 보면 될것 같다. 단, 해당 프로젝트는 비트코인화되면서 맛이 좀 간듯 하다.(일본어로 비트코인관련 정보만 뜨네요)

 

일부 자료들을 찾아보면 USB에 OS를 설치하고 USB로 부팅하는것도 볼 수 있다. 

개인적으로 USB로 부팅하고, 나머지 스토리지를 모두 NAS에 할당하는것도 나쁘지는 않을 것 같다.

 

위 자료들을 통한 조사 결과는 TrueNAS로 설치, OpenMediaVault를 통한 설치를 가장 유력하게 생각한다.

그래도 자료를 가장 많이 찾을 수 있고, 리눅스 기반이라는 것이 운영관리에 최적화될것 같다.

 

다음에는 회사의 어떤 리소스들을 긁어모을 것인지를 사진과 함께 정리해보자.

 

반응형

도커에 대한 설명 동영상

Computer Science/클라우드-대용량 아키텍처
반응형


https://youtu.be/tPjpcsgxgWc


도커를 쉽게 설명하는 동영상입니다.

도커에 대한 개념을 쉽게 잡을 수 있을것 같네요. 


반응형

도커를 강력하게 만드는 12가지 도구

Computer Science/클라우드-대용량 아키텍처
반응형





ITWorld Korea: 도커를 더 강력하게 만드는 오픈소스 툴 12가지.

원본은 위 링크에 있고, 간단히 툴에 대한 이름만 리스트하겠습니다. 글은 꼭 가서 읽어보세요.


1.다이브

.. 이때 다이브(Dive)를 이용하면 대화식 UI를 통해 도커 이미지 속 레이어를 가시적으로 확인..


2.도커 컴포즈 UI
도커 컴포즈 UI(Docker Compose UI)는 도커 컴포즈에 웹 기반 UI를 추가한 MIT 라이선스 프로젝트..

3.도클리
.. 도클리(Dockly)가 해법이다. 도커용 풀스크린 터미널 인터페이스를 제공..

4.더스티
.. 도커 기반의 MIT 라이선스 개발 환경이다. 더스티 개발팀은 컨테이너 관리 툴인 도커 컴포즈 또는 베이그란트(Vagrant)의 사용성을 개선하는 툴..

5.엘시
엘시(Elsy)는 도커와 도커 컴포즈를 이용한 멀티 랭기지 빌드 툴..


6.고커라이즈
고(Go) 언어 애호가를 위한 툴... BSD 라이선스 툴...

 

7.헤비터스
헤비터스(Habitus) 역시 도커 기반 빌드 툴..... 도커 파일과 build.yml 파일을 이용해 임의의 명령 다수를 포함한 다단계 컨테이너 빌드를 만든다...

8.하이퍼
.. 하이퍼바이저 중립적인 툴.. 어떤 하이퍼바이저 상의 도커 이미지도 실행... 파이퍼는 도커와 QEMU, 젠(Xen)을 사용..

9.카이트메틱
.. 카이트메틱(Kitematic)은 맥OS와 우분투 리눅스, 윈도우 등에서 쓸 수 있는 도커 컨테이너 관리용 GUI 툴...

10.로그스파우트
...로그스파우트(Logspout)에도 도커 컨테이너의 로그를 관리... 

11.포테이너
...싱글 호스트이든, 클러스터이든 상관없이 도커 환경에 대한 웹 UI를 제공해 현재 실행중인 모든 것에 대한 단일 뷰를 볼 수..

12.웨일브루
맥OS 사용자라면 맥용 에드훅 패키지 관리 시스템 '홈브루(Homebrew)'에 익숙할 것....웨일브루(Whalebrew)를 이용하면 도커 이미지를 설치한 후 커맨드 라인에서 직접 실행....

반응형

Azure가 제안하는 리눅스VM을 이용한 고가용성 어플리케이션 설계

Computer Science/클라우드-대용량 아키텍처
반응형

클라우드 서비스를 개발하면서 여러가지 자료들을 접하고 있다.

 

너무 많은 자료가 많고, 이를 전체적으로 통찰해서 아는 사람들이 많지 않은 것인지, 아니면 내가 그런 사람을 못만난것인지는 모르겠지만, IaaS와 PaaS와 SaaS를 정확히 구분짓고, AWS, Azure, IBM BlueMix등에서 어떻게 설계하고 목적한 바를 얻을 수 있는지 전체적으로 이야기 해주는 분은 아직 만나질 못했다.

 

하긴, 각 분야별로도 알아야 할게 많은데, 이걸 서비스별, 제품별 모두 알고 있다면 그건.. 대단한 사람일 수 밖에 없겠지요.

 

최근에 Azure를 이용해서 클라우드 환경 설계에 대해서 공부하다가 좋은 자료가 있어 링크합니다.

 

화면이 좀 이쁘게 않나와서 읽기 힘들면 링크를 타고 들어가면 더 좋고 저 많은 내용이 있습니다.

 

 

 

반응형