클라우드 개념 및 종류⛅
- SPI 모델
- 가장 일반적인 클라우드 구분법
- IasS(Infrastructure as a Service) → OS 이하 하드웨어 가상화
- 서버자원(CPU/메모리/디스크/ 네트워크 등)
- 아마존 AWS EC2
- PaaS(Platform as a Service)
- OS+ Runtime(Java)+Platform(Spring,Hadoop,DBMS 등)
- 아마존 AWS EMR
- SaaS(Software as a Service) → 서비스까지 일체 제공
- Google Drive, MS Office 등
- 클라우드를 구축하기 위한 요소기술에는 가상화 기술과 도커와 같은 컨테이너 기반 기술이 있다.
- IasS(Infrastructure as a Service) → OS 이하 하드웨어 가상화
- 가장 일반적인 클라우드 구분법
- 가상화
- 기본 개념
- 가상화
- 컴퓨터 자원(CPU, 메모리, 저장장치,네트워크 등)의 추상화
- 가상화의 레벨
- API(Application Programming Interface)
- 응용프로그램 레벨의 함수/메소드, 언어독립적인 경우도 있다
- ABI(Application Binary Interface)
- 플랫폼과 소프트웨어 사이의 인터페이스 정의
- API보다 낮은 레벨
- API는 유지되면서 ABI는 변경되는 경우
- 코드는 유지하면서 재컴파일
- ISA(Instruction Set Architecture)
- 하드웨어와 소프트웨어 사이의 인터페이스 정의
- API(Application Programming Interface)
- 클라우드 개념
- 하드웨어 → 하이퍼바이저 → 여러개의 Guest OS위에 Application을 설치 가능
- Scale-Up
- CPU, Memory 등을 교체(Upgrade)
- Scale-Out*
- 노드를 추가 (성능을 추가)
- 가상화
- 기본 개념
- 클라우드 /기가상화 적용사례
- 클라우드 서비스
- 아마존 AWS (Amazon Web Service)
- EC2(IaaS)/EMR(빅데이터 처리)/S3/RDS
- Elastic Computing Cloud/Elastic MapReduce
- Simple Storage Service, Relation Database Service
- MS Azure
- 드랍박스,N드라이브, 다음클라우드, U클라우드
- 구글드라이브
- 클라우드 디스크+오피스+PDF viewer
- OpenStack (클라우드 직접 구축)
- IaaS스타일의 오픈소스 클라우드 구축 플랫폼
- KVM(리눅스 커널VM)을 기본 하이퍼바이저로 사용
- 아마존 AWS (Amazon Web Service)
- 클라우드 서비스
- AWS
- OS가 설치된 인스턴스 선택
- 하드웨어 스펙 선택(가격이 다름)
- 추가 옵션 선택
- 디스크 선택 (EBS, 용량에 따라 가격 차이)
- 인스턴스 실행
- 원격 접속을 하기 위해 SSH 사용 → 키를 발급받아야함 → Putty 등을 통해 접속 가능
- Connect 버튼을 이용해 접속 ( 자바를 설치하면 웹브라우저 안에서 로그인 가능)
가상화기술의 개념(하이퍼바이저, 전가상화/반가상화)🌌
- 하이퍼바이저 기반 가상화의 특징
- 가상화 관련 기본 개념
- 하이퍼 바이저 (VMware, VirtualBox 제품)
- 호스트 시스템에서 다수의 게스트 OS를 돌리기 위한 플랫폼
- 호스트 OS
- 물리시스템(컴퓨터)에 설치된 OS
- 게스트 OS
- 가상머신/컨테이너 위에 설치된 OS
- 하이퍼 바이저 (VMware, VirtualBox 제품)
- 하이퍼바이저 유형
- 타입1
- 하이퍼바이저가 하드웨어 위에서 바로 실행(베어메탈)
- 타입2
- 호스트 OS 위에 하이퍼바이저를 실행시키는 방식
- 타입1
- 하이퍼바이저기반 가상화의 특징
- 시스템가상화로 인해 다양한 게스트OS를 실행할 수 있음
- 물리 시스템과 게스트 OS간의 가상화 가능으로 인한 성능 저하
- 약 10~15% 정도의 오버헤드
- 호스트 OS와 게스트 OS간의 기능중복(스케쥴링 등)
- 가상화 관련 기본 개념
- 전가상화와 반가상화
- 전 가상화(Full Virtualization)
- 하드웨어를 완전히 가상화
- OS의 제약 없이 사용할 수 있음
- 게스트 OS는 자신이 가상머신 위에서 동작하고 있다는 것을 인식하지 못함
- 시스템에서 물리적인 가상화 지원기능 필요하다(인텔 VT-x, AMD-v)
- 게스트 OS에서 물리자원에 직접 접근이 불가하다
- 반드시 하이퍼바이저를 통해 접근해야하기 때문에 성능이 저하된다.
- 반 가상화(Para Virtualization)
- 게스트 OS가 자신이 가상머신 위에서 동작하고 있다는 것을 인식
- 게스트OS에서 물리자원 직접 접근이 가능(Pass Through) → 성능이 개선
- 하이퍼콜(OS명령어)을 통해 직접적으로 하드웨어에 접근
- OS 제약이 있음
- OS의 제약,커널을 수정해야함(주로 오픈소스인 리눅스만)
- 전 가상화(Full Virtualization)
- 하이퍼바이저 종류
- VMware
- 대표적인 상용 하이퍼바이저
- ESXi(타입1) → vSphere / WorkStation(타입2) / WorkStation Player
- MS Hyper-V
- 윈도우 서버에 통합
- Ctrix Xen(오픈소스)
- 최초의 반 가상화 하이퍼 바이저
- 오픈소스
- KVM(오픈소스) → OpenStack에서 사용
- 하이퍼바이저를 커널의 '서브 모듈'로 제공
- 메모리관리자/파일시스템/하이퍼바이저
- Parallels(패러렐즈) → 맥 OS 에서 많이 사용, VM에서는 Fusion
- OSX기반의 하이퍼 바이저
- Oracle VirtualBox
- 오라클(구 썬마이크로시스템즈)에서 만든 GPL(오픈소스) 기반의 하이퍼바이저
- 단점은 그래픽 가속이 좋지 못하다 → 성능이 떨어짐
- VMware
가상화기술 사례(VMWare ESXi, Oracle VirtualBox) - 설치 및 사용법😫
- 하이퍼바이저 사용법1 (VMware ESXi)
- vmware.com 에서 다운로드
- NAT 으로 설정 시 외부 에서 직접 접근이 불가하다. 이때에는 포트포워딩이나 외부아이피를 직접 설정해야한다.
- 외부아이피를 직접 설정하려면 Bridge로 적용하면 된다. (shutdown 후 에 변경)
- 접근한 ESXi 홈페이지에서 vSphere Client 를 다운로드 → 설치
- 새 가상 시스템에서 시스템 지정
- VirtualBox와 다르게 호스트디바이스를 직접 지정하거나 데이터 스토어에서 ISO 파일 지정도 가능
- 데이터스토어 상으로 이미지를 업로드를 해줘야함 : 리소스 할당 - 데이터 스토어1 - 구성 - 데이터스토어1 선택 - 마우스 오른쪽 - 데이터 찾아보기에서 업로드, 다운로드 선택 (서버 이미지)
- 다시 설정으로 돌아가 CD롬에서 데이터스토어 ISO 파일 , 전원을 켤 때 연결 체크, 찾아보기에서 데이터스토어의 이미지 파일 선택
- 하이퍼바이저 사용법2 (Oracle VirtualBox)
가상화기술 및 자동화(Automation)기술 : Vagrant🙄
- 하이퍼바이저 자동화기술(Vagrant)
- Vagrant
- 자동화된 VM 관리 툴
- 스크립트 이용한 박스(BOX)설치
- 다양한 하이퍼바이저/도커 지원
- 버추얼박스버전은 무료
- VMWare/Hyper-V 버전은 유료
- Vagrant를 이용한 우분투서버 설치
- Vagrant install
- 박스 검색
- https://app.vagrantup.com/boxes/search
- 박스이름
- ubuntu/trusty64
- cmd 실행
- vagrant init ubuntu/trusty64
- Vagrantfile 생성확인
- vagrant up (우분투 버전 다운)
- 다운로드 완료 후 버추얼 박스에 VM 생성 확인 후 로그인
- vagrant ssh
- vagrant/vagrant
- Vagrantfile
- config.vm.box
- 어떤 박스를 다운 받을 것인지 정함
- config.vm.network
- 네트워크 설정 (ip addr)
- 자동으로 명령어를 수행할 수 있음 apt-get updat
- Provision : 하드웨어, 소프트웨어의 설정을 미리 함
- VM 설치 / 실행
- vagrant up
- VM 접속
- vagrant ssh web/ipconfig/exit
- vagrant ssh db/ipconfig/exit
- 좀 더 자세한 정보는 vagrantup.com/docs 에서 확인 가능다중 VM 에서 Vagrantfile
- config.vm.box
경량 컨테이너 기반 가상화 : 도커의 개념🚢
- 하이퍼바이저 기반 기술과의 비교
- 가상화의 단점
- 불필요한 기능의 중복
- 호스트OS와 게스트 OS 간의 기능 중복
- 메모리 관리, 프로세스 스케쥴링
- 호스트OS와 게스트 OS 간의 기능 중복
- 상대적으로 무겁
- 오버헤드(15~20%)
- 배치(Deployment)의 어려움
- 불필요한 기능의 중복
- 가상화의 단점
- 컨테이너 기반 가상화
- 도커의 개념
- Build-Ship-Run
- 이미지를 만들고 배포를하고 수행하는 것이 쉬움
- Build-Ship-Run
- 기존의 가상화와 다른 개념
- 하드웨어 가상화가 아닌 실행환경의 분리(isolation)
- 각 컨테이너간 영향을 분리
- 호스트 OS ↔ 도커 엔진 ↔ 컨테이너 (필요한 라이브러리)
- 도커의 성능
- 오버헤드가 3~5% 이내 → Native와 성능 차이가 거의 나지 않는다
- 도커의 특징
- 모든 컨테이너들이 동일 OS 커널 공유(Linux)
- 독립적인 스케쥴링이나 CPU/메모리/디스크/네트워크를 가상화하지 않음
- 리눅스의 특수 기능(LXC)을 사용한 실행환경 격리를 응용
- 리눅스에서만 사용 가능
- 처음에는 우분투에만 되던 기능이였는데 지금은 리눅스 배포판에서 사용 가능
- 다른 OS(윈도우/OSX) 에서는 일반 하이퍼바이저(경량)가 있어야 한다
- 현재는 LXC → Libcontainer를 사용해 리눅스 의존도를 줄이려 하고 있음
- 리눅스에서만 사용 가능
- 시스템의 분리에는 Linux Containers(LXC)
- 파일 시스템은 Adanced multi layered unification filesystem(Aufs)를 사용
- 그리고 Git과 같은 이미지 버전컨트롤 시스템 도입
- 현재 사실상의 표준이 됨
- 구글에서 만든 Go언어로 작성
- Docker는 하나의 Linux 시스템에 여러 Linux 시스템 운영을 위한 소프트웨어
- 모든 컨테이너들이 동일 OS 커널 공유(Linux)
- LXC
- 시스템레벨 가상화
- cgroups(control groups)
- CPU,메모리,디스크,네트워크를 프로비저닝 (할당받고 관리하는 기능)
- Namespaces(Namespace Isolation)
- 프로세스트리, 사용자 계정,파일시스템, IPC
- 호스트와 별개의 공간설정
- chroot(change root) 명령어에서 발전
- chroot jail
- chroot 상의 폴더에서 외부 디렉토리 접근 안됨
- Libcontainer
- 컨테이너 최적화 기술 LXC 외에 리브 컨테이너(libcontainer)란 별도의 실행 드라이버(exec driver)를 만들어, 특정 우분투 버전 외에 다양한 리눅스 지원
- 맥 OS 나 윈도우에서도 사용할 수 있는 가능성이 생김
- native(libcontainer), lxc(LXC)
- 도커의 구조
- LXC(cgroups + namespaces)
- libcontainer
- AUFS
- 이미지, 컨테이너 생성관리
- 각종 부가 기능
- LXD
- 우분투를 만든 캐노니컬에서 만든 컨테이너 솔루션
- 기존의 LXC에 보안 개념까지 추가
- Secure by default
- Unprivileged container
- root가 아니어도 컨테이너 생성 가능
- 도커는 Application Container, LXD는 Machine Container
- LXD는 Container "Hypervisor"
- 경쟁기술이라기 보다는 보완관계(도커와 병행 가능)
- KVM(Kernel Virtual Machine)을 경쟁기술로 간주
- 도커의 개념
컨테이너 기반 가상화 : 도커의 설치 및 활용🚤
- 도커 설치
- docker.com
- 요구사항
- 윈도우 64비트 버전이상
- 도커 툴박스 ( Boot2Docker )/ 도커 머신 ( Docker Machine)
- 도커 툴박스 vs 도커머신
- 도커 툴박스(deprecated)
- Tiny Core linux 기반의 경량 리눅스 배포판 사용
- 내부적으로 버추얼박스 지원
- 도커 머신(new)
- 가상호스트에 도커엔진 설치를 위한 툴
- 버추얼박스, vmware 지원
- 도커 툴박스(deprecated)
- 도커 기반 우분투 설치(root 계정으로 설치)
- 도커 이미지 검색
- docker search ubuntu
- 우분투 이미지 다운
- docker pull ubuntu
- 이미지 리스트 출력
- docker images
- 컨테이너 생성
- docker run —name=ubuntu ubuntu
- 컨테이너 접속
- docker attach ubuntu
- docker exec -it ubuntu bash (it 옵션은 바로 터미널로 접속)
- 컨테이너 탈출
- exit or 컨트롤-p-q(컨테이너 정지하지 않고 나옴)
- 도커 이미지 검색
- 도커 사용법
- 도커 기본 명령어
- 도커 컨테이너 리스트
- docker ps -a
- 도커 컨테이너 정지
- docker stop ubuntu
- 도커 컨테이너 재시작
- docker restart ubuntu
- 도커 컨테이너 삭제
- docker rm ubuntu ( stop 먼저 필요 ), docker rm -f ubuntu, docker kill ubuntu (프로세스가 죽은 경우)
- 도커 이미지 삭제
- docker rmi ubuntu , docker images
- 도커 컨테이너 리스트
- 도커 기본 명령어
- 도커 명령어***
- 이미지 파일 생성
- docker save -o ubuntu_img.tar ubuntu (aufs의 우분투 이미지를 ubuntu_img.tar로 로컬파일 시스템에 저장)
- 이미지 압축/해제
- gzip ubuntu_img.tar / bzip2 ubuntu_img.tar
- 이미지 삭제
- docker rmi ubuntu
- 파일에서 이미지 로드
- docker load -i ubuntu_img.tar
- docker images (이미지 ID 확인)
- 이미지 태그 지정 (alias 지정)
- docker tag 이미지ID ubuntu
- 컨테이너의 IP 주소 알아내기
- docker inspect ubuntu | grep "IPAddress"
- 이미지 파일 생성
- 도커 run 명령어 옵션 (두 글자 이상이면 -를 2개)
- p(publish) : 포트 노출
- d(detach) : 서버형 실행
- e(env) : 환경변수 설정
- i(interactive) : 표준입력 열어두기
- t(tty) : 터미널 인터페이스
- v(volume) : 호스트 디렉토리
- w(workdir) : 작업디렉토리 설정
- l(link) : 컨테이너 연결
- 도커 명령어2
- Search
- pull
- run
- ps
- stop/restart/kill/rm/pause/unpause
- images / rmi
- commit
- history
- diff
- inspect
- 컨테이너 attach 도 좋지만 exec -it '이름' bash 가 조금더 안정적임
컨테이너기반 가상화와 자동화기술 : Dockerfile🕶
- 커밋을 통한 이미지 생성
- apt-get update & install
- 컨테이너에 접속한 상태에서
- apt-get update 명령을 먼저 수행해야 apt-get install 명령어 사용 가능
- 바로 apt-get install을 사용하면 에러 발생
- 일반 우분투에서는 기본으로 설치되어 있는 nano가 도커 기반 이미지에서는 깔려 있지 않다
- apt-get install nano
- 컨테이너에 접속한 상태에서
- 새로운 이미지를 기반으로 컨테이너를 생성(update와 nano가 실행 된 상태)
- 컨테이너에 새로운 내용을 추가/변경한 후 commit해 이미지 생성
- docker diff ubuntu(컨테이너 변경사항 확인)
- docker commit -m "test" -a"sjha" ubuntu(기존 이름) ubuntu_nano(새로운 이름)
- a는 사용자 옵션
- docker images
- apt-get update & install
- 도커 파일을 기반으로한 이미지 생성
- 도커 이미지 생성방법
- Dockerfile을 수행시켜 새로운 이미지 생성
- 우분투 이미지에 Dockerfile 입력 후 수행
- FROM ubuntu:latest (Base 이미지 지정)
- MAINTAINER 이름 <이메일>
- RUN apt-get update
- RUN apt-get install nano
- ENV TERM=xterm (환경 변수 설정)
- docker build —tag=ubuntu_nano .(현재 디렉토리 지정)
- docker images
- docker history ubuntu_nano(이미지 변경사항)
- 우분투 이미지에 Dockerfile 입력 후 수행
- Dockerfile을 수행시켜 새로운 이미지 생성
- Dockerfile 기초
- FROM
- 도커 이미지 생성할 때 사용할 기본 이미지를 지정
- 만약 해당 이미지가 없으면 서버 repository에서 다운로드
- MAINTAINER
- 이미지를 생성한 사람에 대한 기본 정보 표시
- RUN
- FROM에서 지정한 기본 이미지 위에 명령을 수행해 새로운 이미지를 생성한다
- CMD
- 컨테이너가 수행될 때 지정된 명령어/명령/스크립트 파일 실행
- Dockerfile에서 한 번만 사용 가능
- CMD ["echo $PATH"]
- ENTRYPOINT
- CMD와 거의 같으나 컨테이너 생성(run)이나 시작(start)될 때 실행
- ENTRYPOINT["/sample.sh"]
- CMD와 거의 같으나 컨테이너 생성(run)이나 시작(start)될 때 실행
- FROM
- Dockerfile 상세
- 환경변수 설정
- 일반적인 우분투의 경우
- 홈디렉토리의 ~/.bashrc나 ~/.profile에
- export sample=/sample과 같이 지정한 후
- source ~/bashrc 나 source ~/.profile로 환경변수에 반영한다
- 홈디렉토리의 ~/.bashrc나 ~/.profile에
- 도커에서는
- 환경변수를 지정하려면
- docker run —env sample=/sample —name=ubuntu ubuntu (run 실행 시 환경 변수 설정)
- Dockerfile
- ENV sample=/sample (도커 파일에서 ENV을 이용하여 환경 변수 설정)
- 환경변수를 지정하려면
- 환경변수 확인
- echo $sample
- 일반적인 우분투의 경우
- 포트 노출
- 컨테이너의 포트와 호스트의 포트를 연결
- 컨테이너의 80번 포트와 호스트의 80번 포트를 연결
- 외부에서 80번 포트로 접근하면 컨테이너의 80포트를 연결
- docker run -p 80:80 —name=ubuntu ubuntu
- host port:container port
- Dockerfile
- expose 80 (container port)
- 컨테이너의 80번 포트를 외부에 노출한다
- -p 옵션과 같이 사용
- -p 옵션과 expose 둘 다 해줘야한다.
- 파일을 이미지에 추가
- 호스트의 파일을 이미지 생성 시 추가(복사)
- Dockerfile
- ADD ~/sample.txt /sample.txt
- 호스트의 ~/saple.txt파일을 컨테이너의 /에 추가(복사)
- 압축파일을 지정할 경우 알아서 압축을 풀어서 추가
- URL을 지정할 경우에는 압축해제 없이 추가된다.
- 명령 수행할 사용자/폴더 지정
- RUN/CMD/ENTRYPOINT을 수행하기 전 사용자계정 지정
- USER sample
- sample 사용자로 변경
- USER sample
- RUN/CMD/ENTRYPOINT 수행하기 전 폴더 지정
- WORKDIR ~/sample~
- ~/sample 폴더로 변경해 아래 명령을 수행하라
- WORKDIR ~/sample~
- RUN/CMD/ENTRYPOINT을 수행하기 전 사용자계정 지정
- 볼륨연결
- 컨테이너의 폴더와 호스트의 물리폴더 간의 연결
- 물리폴더 ~[홈디렉토리]/Downloads를 컨테이너의 /download 폴더로 연결
- docker run —name=ubuntu ubuntu -v ~/Downloads:/download
- 물리디렉토리:컨테이너 디렉토리
- Dockerfile
- VOLUME /sample
- VOLUME ["/data","/sample"] (여러개 사용시 배열형태로 사용)
- 해당디렉토리는 컨테이너 폴더가 아닌 호스트의 물리폴더로 저장하고
- -v 옵션과 같이 사용
- 도커 컨테이너간 연결
- 컨테이너간 상호연결 설정
- mysql 다운로드
- docker pull mysql
- mysql 컨테이너 실행(서버모드)
- docker run -d -e MYSQL_ROOT_PASSWORD=kltrl —name=mysql mysql
- d옵션으로 서버모드 실행
- e로 환경변수 설정
- docker run -d -e MYSQL_ROOT_PASSWORD=kltrl —name=mysql mysql
- 우분투 컨테이너 실행(연결)
- docker run —name ubuntu -d —link mysql:mysql ubuntu
- mysql 컨테이너와 결합 → 우분투에서 mysql 사용 가능
- mysql -uroot -p -h mysql 을 사용하려면 우분투 컨테이너에서 apt-get install mysql-client로 클라이언트를 설치해야한다.
- docker run —name ubuntu -d —link mysql:mysql ubuntu
- 환경변수 설정
- 도커 이미지 생성방법
실전 도커 적용사례(OpenJava, Oracle Java, SSH, MySQL)🎈
- 오픈자바 설치
- 일반적인 우분투 환경변수 설정
- ~/.profile 이나 ~/.bashrc에 설정하고 source 명령어로 반영
- 도커에서는
- Dockerfile에 RUN/ENV 명령어로 설정
- RUN apt-get install -y openjdk-8-jdk
- apt-cache search 로 애매한 패키지명 찾기 가능
- apt-get clean 을 동해 원래 .deb 파일 삭제가능
- 환경 변수
- ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- ENV CLASSPATH=$JAVA_HOME/ ib/*: .
- ENV PATH=$PATH:$JAVA_HOME/bin
- 일반적인 우분투 환경변수 설정
- 오라클자바 설치
- 서드파트에서 repository를 이용하여 오라클 자바 설치
- apt-get install -y software-properties-common
- add-opt-repository ppc:webupd8team/java
- apt-get update -y
- apt-get install -y oracle-java8-installer
- apt-get clean
- 환경변수는 오픈자바와 거의 동일 JAVA_HOME 부분만 바뀜
- docker build —tag=oracle_java . (도커파일이 있는 곳에서 수행)
- run을 이용해 컨테이너 수행
- ssh 설치
- 일반적인 우분투에서 SSH 설정
- openssh-server 설치
- sudo apt-get install openssh-server
- putty 접속
- openssh-server 설치
- 서버 실행, 종료
- sudo service ssh start/restart/stop
- /etc/init.d/ssh start/restart/stop
- 도커에서는 서비스 자체가 제대로 지원되지 않음
- root계정으로 원격접속하려면
- /etc/ssh/sshd_config 파일의
- PermitRootLogin 설정을 prohibit-password/without-password에서 yes로 수정
- /etc/ssh/sshd_config 파일의
- chpasswd를 통해서 root의 비밀번호 지정
- root계정으로 원격접속하려면
- Dockerfile
- RUN apt-get install -y openssh-server
- RUN mkdir /var/run/sshd
- RUN echo 'root:패스워드' | chpasswd
- RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
- RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
- EXPOSE 22
- CMD ["/usr/sbin/sshd", "-D"] (서버모드로 실행)
- ssh 비밀번호 지정(root / 패스워드)
- EXPOSE 명령어를 사용해 컨테이너 포트 22번 노출
- 외부로 노출하기 위해서는 run에서 -p 옵션을 사용해서 노출
- cmd명령을 사용해서 sshd 프로그램을 서버로 노출
- 리눅스의 서비스(service 수행)대체
- 일반적인 우분투에서 SSH 설정
- Mysql
- 다운로드
- docker pull mysql (이미지 다운)
- 실행
- docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=패스워드 -d —name=db mysql
- 컨테이너 접속
- docker exec -it db bash
- MYSQL 접속
- mysql -uroot -p
- MySQL 컨테이너에 접속할 시
- 다운로드
- docker pull mysql
- 실행
- docker run -e MYSQL_ROOT_PASSWORD=패스워드 -d —name=db mysql
- docker run -it —name=ubuntu —link db:db ubuntu
- 컨테이너 접속
- docker exec -it ubuntu bash
- MySQL 접속
- apt-get install mysql-client
- mysql -h db -uroot -p
- 다운로드
- 다운로드
'클라우드 > 오픈스택' 카테고리의 다른 글
Open Stack 설치 1 (Ubuntu 16.04 + Virtual Box) (0) | 2020.03.13 |
---|---|
OpenStack을 위한 CentOS 기본설정 (실패) (0) | 2020.03.02 |
OpenStack을 위한 CentOS 8 구성 및 노드 설정 (0) | 2020.03.02 |
VMware CentOS 설치 시 Pane is dead 오류 해결 (1) | 2020.03.02 |
클라우드 컴퓨팅 개요 (0) | 2020.03.01 |