- 하드웨어에OS를설치하고, Container Engine 을 설치
Container Image : 컨테이너를 실행하는데 필요한 프로그램, 소스코드 등을 묶어놓은 소프트웨어 패키지
- 이미지 이름 형식
도커허브이미지장소/이미지이름:최신버전
이미지이름 → 도커허브에 저장된 최신버전 이미지를 보여줌
private:10000/nginx:18.04 → 개인장소에 저장된 18.04버전 nginx이미지를 보여줌
Dockerfile : 컨테이너 이미지를 생성하기 위한 레시피 파일
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y vim apache2
COPY index.html /var/www/html/
CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
LABEL version="1.0"
ENV USER=docker
EXPOSE 80
USER docker:docker
ORKDIR /home/docker
이를 통해 이미지(틀)를 만들고 이미지를 많이 만들어 Container를 만든다.
- 도커파일이 있는 경로에서 빌드 명령 수행
docker build -t 도커허브계정명/이미지명:태그명 .
- 생성한이미지를내계정도커허브저장소에업로드
docker push 도커허브계정명/이미지명:태그명
- 이미지를통해컨테이너실행
docker run -d -p <로컬 포트>:<컨테이너 포트> --name <컨테이너의 이름>
Container Image : 컨테이너를 만들어주는틀
Dockerfile : 틀을 만들기 위한 설계도
DockerHub : 도커가 무료로 Container를 제공하는 공개저장소
ACR : 도커 허브와 같은 저장소로, 이미지를 관리
1. Azure cli, Docker, Kubectl 설치
- vm1에서 호스트네임 변경
sudo hostnamectl set-hostname jumpbox
sudo -i
- Azure cli 설치 후 확인 > 사이트 들어가서 코드 입력 후 로그인
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
az
az login
- 로그인 완료 후 구독 버튼누르고 1, Enter > vm목록 확인
az vm list --output table
- Docker를 설치하기 위해 다음 명령어 실행
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/\
docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- 설치 확인
sudo systemctl status docker
- Kubectl 다운로드, 설치, 버전 확인, 자동완성 설정
curl -LO "https://dl.k8s.io/release/$(curl -L -s \
https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source /etc/bash_completion
alias k=kubectl
complete -F __start_kubectl k
2. 컨테이너 실행
도커 허브에서 사용할 이미지 검색 후 확인
docker search nginx
docker pull nginx
docker images
- 컨테이너 실행시키기
docker run -d --name web-container -p 8080:80 nginx
- nginx 실행 확인
curl localhost:8080
- local 호스트말고 8080포트로 열기
- 컨테이너 확인하기
docker ps
- 컨테이너 정지 및 다시 시작
docker stop web-container
docker start web-container
- 컨테이너 삭제하기
docker rm -f web-container
- 이미지 확인 및 이미지 삭제
docker images
docker rmi nginx
- 디렉토리 생성 파일 생성
a,i,o로 편집
ESC 후 :wq!로 저장
mkdir myweb
cd myweb
vi index.htm
<!DOCTYPE html>
<html>
<head>
<title>My Webserver</title>
</head>
<body>
<h1>This is My Webserver!</h1>
</body>
</html>
- Dockerfile 생성
vi Dockerfile
FROM nginx:latest
COPY index.html /usr/share/nginx/html/index.html
- 빌드 명령을 수행하여 dockerfile 기반 컨테이너 이미지 생성
docker build -t my-webserver .
docker run -d -p 8080:80 --name my-container my-webserver
3. 도커 허브에 업로드
docker login
'KT AIVLE School > 가상화 클라우드' 카테고리의 다른 글
Kubernetes (0) | 2024.12.16 |
---|---|
Azure 고가용성 서비스 (0) | 2024.12.06 |
Microsoft Azure (0) | 2024.12.05 |
가상화 (2) | 2024.12.05 |