Docker & Container

2024. 12. 16. 21:28·KT AIVLE School/가상화 클라우드

- 하드웨어에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. 도커 허브에 업로드

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

hub.docker.com

 

docker login

 

'KT AIVLE School > 가상화 클라우드' 카테고리의 다른 글

Kubernetes  (1) 2024.12.16
Azure 고가용성 서비스  (0) 2024.12.06
Microsoft Azure  (0) 2024.12.05
가상화  (2) 2024.12.05
'KT AIVLE School/가상화 클라우드' 카테고리의 다른 글
  • Kubernetes
  • Azure 고가용성 서비스
  • Microsoft Azure
  • 가상화
Rabet
Rabet
  • 블로그 메뉴

    • 관리자
    • 글쓰기
  • Rabet
    卯
    Rabet
  • 전체
    오늘
    어제
    • Root (141)
      • KT AIVLE School (85)
        • Start (4)
        • Python프로그래밍 & 라이브러리 (6)
        • 데이터 처리 및 분석 (7)
        • 데이터 분석 및 의미 찾기 (7)
        • 웹크롤링 (10)
        • 머신러닝 (10)
        • 딥러닝 (6)
        • 시각지능 딥러닝 (10)
        • 언어지능 딥러닝 (6)
        • JAVA (4)
        • SQL (2)
        • 가상화 클라우드 (5)
        • 프로젝트 (8)
      • QA (3)
        • 오류사항 (1)
      • 웹공부 (14)
        • SPRING (11)
        • React (1)
      • 코딩 알고리즘 스터디 (23)
      • 코딩테스트 (9)
        • JAVA (8)
        • HTML (1)
      • CS공부 (3)
      • 자격증공부 (4)
        • 정보처리기사 (1)
        • 컴퓨터활용능력 1급 (1)
        • AICE Associate (1)
        • ISTQB (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Rabet
Docker & Container
상단으로

티스토리툴바