[17일차] Azure & Docker

btga·2024년 1월 11일

SKT FLY AI 4기

목록 보기
16/31

1. Azure

1) Container 만든 후, 터미널(PowerShell, cmd 상관 없음) 열어서

ssh labuser23@20.214.159.32 # 연결
sudo apt-get update # 업데이트
sudo apt-get upgrade # Upgrade
sudo passwd # pwd 재설정

git --version # 깃 버전 확인
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt-get update
sudo apt-get install git -y

2) 기본 git 설정

3) 플라스크 파일 불러오기

rm -rf flask # flask dir 만들기
git clone https://github.com/ktde24/flask.git # HTTPS git clone
cd flask # flask dir로 이동

sudo apt install python3-pip # pip 설치
pip install flask # flask 설치
  • 네트워크 설정에서 방화벽 열기!
python3 -m flask run --host=0.0.0.0 --port=5000 # 클라우드 가상머신 연결

4) Docker 설치

# 1.
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

# 2.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 3.
echo \
  "deb [arch=amd64 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
  
# 4. 업데이트
sudo apt-get update

# 5. 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io

5) docker 실행

sudo systemctl status docker.service

sudo systemctl status containerd.service

sudo docker run hello-world

2. Docker

docker desktop 다운로드: https://www.docker.com/products/docker-desktop/

1) 윈도우 컨테이너

  • 맥, 리눅스에서 실행 불가
  • OS에 종속적(OS kernel 존재X): 가벼움 + 빠름 + 저장해서 받아오는 시간 단축 가능
  • 이미지: 서비스 운영(어플리케이션 실행)에 필요한 모든 파일이 묶여있는 형태

    '도커 이미지는 소스 코드, 라이브러리, 종속성, 도구 및 응용 프로그램을 실행하는데 필요한 기타 파일을 포함하는 불변(변경 불가) 파일'

  • 메모리에 올라간 상태(= 저장소에 있는 이미지가 실행 된 상태): 컨테이너
    -> 상태를 저장X
  • 컨테이너가 가상머신은 아님!

2) 커널

  • 운영체제의 핵심부, 컴퓨터 자원 관리 역할
  • 사용자 -> 시스템 프로그램(Shell 등을 사용) -> 커널 -> 컴퓨터 자원 접근

3) WSL

WSL
: 사용자가 리눅스 VM(가상 머신)을 실행하지 않고도 리눅스에서 사용하던 바이너리를 그대로 윈도우에서 실행할 수 있도록 하는 윈도우 운영체제 호환성 계층

리눅스?

  • 윈도우, 맥OS 같은 운영체제(CPU, 메모리 등 관리 역할)
  • 서버의 운영체제로 많이 사용됨

3. 명령어

ssh labuser23@20.214.159.32

docker pull ubuntu:20.04 # 다운로드, 20.04 버전 지정

  • docker ps: 실행 중인 컨테이너 확인
  • docker ps -a: 모든 컨테이너 확인
  • 도커 컨테이너 실행
docker run -it --name demo1 ubuntu:20.04 /bin/bash
docker run -it -d --name demo1 ubuntu:20.04 bash # -d 붙이면 demo 상태로 실행을 의미

  • docker rm [Container ID 또는 이름]: 컨테이너 제거 <- stop 후 가능
  • docker stop [Container ID 또는 이름]: 실행 중인 컨테이너 멈추기
  • 컨테이너 내부로 접속
docker exec -it demo1 bash
  • docker rmi [이름]:[태그] 또는 [ID]: 이미지 삭제

  • home directory로 이동

cd .. 
cd ~
  • dockerfile 생성 명령어: touch Dockerfile
# dir 만들기
mkdir docker-practice

# vi Dockerfile 실행 후
# base image 를 ubuntu 20.04 로 설정합니다.(도커허브 확인)
FROM ubuntu:20.04

# apt-get update 명령을 실행합니다.
RUN apt-get update

# DOCKER CONTAINER 가 시작될 때, "Hello" 를 출력합니다.
CMD ["echo", "Hello"]

<docker hub에 올리기>

  1. docker hub 로그인 -> new repo 생성
  2. docker tag my-image:v1.0.0 ktde24/my-image:v1.0.0.0 명령어 실행
  3. hub에 올리기: docker push ktde24/my-image:v1.0.0.0

4. 실습

1. docker hub에 이미지 올리기

docker build -t Image:v1.0.0

docker tag image:v1.0.0 ktde24/github-actions-app:v1.0.0 # 태그 지정
docker push ktde24/github-actions-app:v1.0.0 # push

2. pull + 브라우저 접속

docker pull ktde24/github-actions-app:v1.0.0

docker run -it -d --name demo2 ktde24/github-actions-app:v1.0.0

docker run -it -p 5000:5000 ktde24/github-actions-app:v1.0.0

0개의 댓글