Cloud Engineering

Docker Volume 도커 볼륨은 도커에 의해서 관리되는 스토리지이다. 볼륨을 사용하는 경우는 다음과 같다. 다수의 컨테이너 사이 데이터를 공유할 때 컨테이너에서 호스트 구성을 분리할 때 컨테이너 데이터를 원격 호스트 또는 클라우드에 저장하고 싶을 때 다른 호스트로 데이터를 백업 및 복원할 때 Docker Volume 생성 docker volume create NAME 생성된 볼륨들은 /var/lib/docker/volumes 에 저장된다. Docker Volume 목록 확인 docker volume ls Docker Volume 상세 정보 확인 docker volume inspect NAME Docker Volume 컨테이너에 연결하기 -v 옵션을 붙여서 도커 볼륨에 연결해야 한다. docker r..
도커의 컨테이너 내에서 생성되는 데이터는 런타임 데이터이다. 즉, 컨테이너가 삭제되면 데이터들도 함께 삭제된다. 따라서 영구적인 목적으로 데이터를 저장하고 싶다면 컨테이너에 저장하는 것이 아니라, 컨테이너의 외부 메모리에 마운트 시킨 후 메모리에 저장을 하는 것을 권한다. Bind Mount 호스트의 파일 디렉토리와 컨테이너의 디렉토리를 연결하는 방식이다. 그렇지만 Bind Mount는 도커에 의해서 관리되지 않으며 호스트의 파일시스템에 대해 의존적이다. 또한 호스트의 민감한 파일까지 접근가능하므로 보안에 취약하다는 문제점이 있다. Bind Mount 는 컨테이너를 생성하거나 실행을 시작할 때 연결할 수 있으며 이미 실행중인 컨테이너에는 Bind Mount로 연결시킬 수 없다. 명령어는 docker ru..
shell 명령어 중에 $(명령어) 이런식으로 표기되어 쓰는 경우가 있다. 예를 들어 도커에서 호스트의 모든 컨테이너들을 한꺼번에 지우고 싶을때 docker container rm $(docker container ls -a -q) 라고 명령어를 사용할 수 있다. 이때 $() 안에 있는 명령어가 먼저 실행된 후 , 바깥의 명령어가 실행된다. 모든 컨테이너의 id를 출력해주고 이를 다시 대체하여 argument 로 쓸 수 있다는 의미이다. 즉, docker container rm $(docker container ls -a -q) 는 docker container rm AAA BBB CCC DDD 와 같다. 따라서 명령어를 실행하면 결과적으로 AAA BBB CCC DDD 컨테이너가 모두 삭제될 것이다 !
Docker Container 내부로 연결 (attach) $ docker container attach CONTAINER $ docker attach CONTAINER attach 명령어 사용은 권장되지 않는다 그 이유는 attach 명령어 실행후 컨테이너 내부에 직접 접근하여 exit하면 실제 운영중인 서비스가 중단될 수 있기 때문이다. → 엄청난 문제가 생김 ! [예시] attach 명령어를 통해 컨테이너 centos7-10에 직접 접근하여 실행한다. [root@localhost ~]# docker start centos7-10 centos7-10 [root@localhost ~]# docker attach centos7-10 [root@164145c46559 /]# ls anaconda-post...
1. Docker Container 환경변수 설정하기 docker container run -it --name CONTAINER_NAME -e VAR=VALUE IMAGE 2. Docker Container CPU 제한 $ docker container run -it —name CONTAINER_NAME —cpus NUM IMAGE [예시] 여기서 NUM은 CPU의 개수를 의미하며 1 == 100%, 0.2 == 20% 이다. --cpus 옵션으로 CPU 사용량을 20%로 제한한 후 dd 명령어를 통해 부하를 발생시킨다. docker stats로 현재 CPU사용량을 확인해보면 다음과 같이 20% 에 가깝게 사용률이 제한받는 것을 확인할 수 있다. 3. Docker Container 메모리 제한하기 doc..
1. Docker Container 현재 실행중인 목록 확인 $ docker ps $ docker container ls 2. Docker Container 모든 컨테이너 파일 목록 확인 $ docker ps -a $ docker container ls -a 현재 Docker 호스트에 존재하는 모든 컨테이너 목록이 보인다. 3. Docker Container 생성 $ docker container create —name CONTAINER IMAGE_REPO:TAG $ docker create —name CONTAINER IMAGE_REPO:TAG 두 명령어는 동일하다. docker create 명령어의 옵션 -i : 컨테이너에서 표준 입력 유지하기 -t : 컨테이너의 가상 터미널 지정 --name : 컨..
1. Docker Container Image 다운로드 $ docker image pull IMAGE $ docker pull IMAGE_REPO:TAG 둘다 동일한 명령어이다. 2. Docker Image 파일을 layer단위로 아카이브 이미지를 layer단위로 tar파일에 저장하는 명령어이다. 둘다 동일한 명령어이다. $ docker image save -o TAR_FILE IMAGE_REPO:TAG $ docker save -o TAR_FILE IMAGE_REPO:TAG 3. tar 파일을 Docker에 로드하기 $ docker load -i TAR_FILE:TAG.tar .tar 파일을 사용하는 이유 ? 인터넷과 연결되는 경우 도커허브에서 받아오면 되는데 서버를 운영할 때 외부 네트워크와 연결을 ..
서버 가상화 서버를 가상 머신으로 만들어서 사용하는 기술 하드웨어의 발전으로 리소스 활용률이 낮아져서 CPU 나 메모리같은 자원을 논리적으로 나눠서 사용하여 활용성을 높이는 기술이다 ex) Virtual Machine 하이퍼바이저 : 가상머신들마다 사용할 수 있는 리소스들을 충돌하지 않도록 관리해주는 소프트웨어. 호스트가 소프트웨어 파티셔닝을 할 수 있게 만들어준다. 네트워크 가상화 물리적으로 보면 통합된 네트워크이지만 가상으로 네트워크를 나누어 자원으로 사용하고 필요하지 않으면 다시 회수하는 형태로 사용할 수 있다. 물리적으로 연결된 네트워크를 논리적으로 연결해서 사용하겠다. 대표적인 기술들 : NFV (Network Function Virtualization), SDN (Software Defined..
minjiwoo
'Cloud Engineering' 카테고리의 글 목록 (9 Page)