데이터센터프로그래밍07

07-Docker Hub & Dockerfile

🔵 7.1 Dockerfile

  • 이미지를 만드는 파일
  • 실제로 텍스트 파일임
  • 도커엔진에게 일을 시켜 이미지를 만듦
  • 도커파일에 작성되어 있는 문장들은 필요한 SW를 차곡차곡 쌓는 것(레이어)임
    ex. 우분투 및 파이썬 설치, 환경구축

🔵 7.2 Dockerfile : FROM, COPY, RUN, CMD

  • 도커파일은 Infrastructure as code의 대명사
  • FROM
    : 가장 밑바닥의 우분투 18.04버전을 도커 허브에서 가져와서 설치
    : 즉, 이미지를 백지 상태로 만든 후 가장 밑바닥에 우분투 18.04를 설치
  • COPY
    : 우분투 운영체제를 가지고 와서 내가 만든 프로그램을 우분투 위에서 돌아가도록 이미지를 만듦
    : 즉, COPY는 이미지를 만드는 중에 도커 명령을 수행하고 있는 개발자의 컴퓨터의 directory (current directory or local) 이 파일을 도커 이미지 안으로 넣으라는 의미
    🧸 copy . /app란?
    : 내 현재 directory 파일들을 우분투 이미지의 root directory 밑의 app에 copy하라는 의미
    ex. Apache에서 이미지를 가져온 후에 자신이 만든 웹사이트를 copy해서 안으로 넣으면 됨
  • RUN
    : run 뒤에 있는 make /app을 실행하라는 의미
    : make는 파일이 많을 때, comfiler에게 작업을 시키기 위한 별도의 작업명세서를 만듦
    : make 파일이 있을 경우, 우분투 안에 들어간 자신의 프로그램을 우분투인 make 명령어를 통해서 만들어줌
  • CMD
    : CMD command는 우분투 안에 있는 명령어를 실행하라는 의미
    : 우분투에 탑재된 기본 프로그램인 파이썬을 통해서 자신이 만들어서 업로드한 파일 중에 app.py를 실행하라는 의미
    🙂 따라서, 이 이미지는 우분투가 있으며 / 웹프로그램일 들어가 있으며 / 내가 만든 파이썬 프로그램을 수천~수만개에서 돌리고 싶은 마음으로 만든 ... 이미지를 만들기 위한 도커파일임

🔹 코드 명령어 & 설명
🟩 Dockerfile

## Docker file for a slim Ubuntu-based Python3 image

# 도커파일로 부터 우분투의 최신버전 가져오기
From ubuntu:latest
MAINTAINER fNNdsc "작성한 사람"

# run을 한다는 것은 도커엔진에게 우분투 가져온 것 안으로 
# 들어가서 apt-get, cd, ln, pip3 install을 실행
RUN apt-get update \
 && apt-get install -y python3-pip python3-dev \
 && cd /usr/local/bin \
 && ln -s /usr/bin/python3 python \
 && pip3 install --upgrade pip
 
ENTRYPOINT ["python3"]
``` 

🔹 코드 명령어 & 설명
🟩 Basic Command

```Linux
docker pull
docker image ls
docker container run
docker container ls
docker container ls -a(or --all)
docker container ls -a -q(or -aq)
docker container stop
docker container kill

🔹 코드 명령어 & 설명
🟩 Information Command

docker --version
docker system info
docker system df
docker ps
docker stats
docker search

🔹 코드 명령어 & 설명
🟩 Clean-up Command

docker image rm -f
docker container rm -f
docker system prune

🔹 코드 명령어 & 설명
🟩 Docker Command

# simple hello docker
docker run hello-world

# ubuntu os installation
docker pull ubuntu
docker container run -it -d --rm --name ubuntuos ubuntu:latest
docker exec -it ubuntuos /bin/bash

# alpime os installation
docker pull alpine
docker container run -it -d --rm --name alpineos alpine:latest
docker exec -it alpineos /bin/bash

좋은 웹페이지 즐겨찾기