Docker

JJong·2025년 1월 14일

Data Science

목록 보기
5/5
post-thumbnail

Docker?

  • Docker는 Container 기술을 사용하여 어플리케이션을 패키징 하고 배포하는 데 사용되는 오픈 소스 플랫폼. 이를 통해 어플리케이션을 쉽게 배포하고 실행할 수 있었다.
  • 특징 : Docker는 경량화된 컨테이너를 제공하며, 이는 독립적이고, 이식성이 뛰어나며, 환경에 구애받지 않는 방식으로 어플리케이션을 실행함.

Docker의 주요 구성 요소

  • Docker Image
    : 어플리케이션을 실행하는데 필요한 모든 파일과 설정을 포함하는 템플릿. (독립적으로 컨테이너가 실행됨)
  • Docker Container
    : Image를 기반으로 실행되는 실행 Instance
  • Docker Daemon
    : Docker Image와 Container를 관리하는 background service
  • Docker Registry
    : 외부 Image 저장소. 다른 사람들이 공유한 이미지를 사용할 수도 있고, private하게도 저장 가능함.
  • Docker Clinet
    : 사용자가 Docker Daemon과 상호작용하는 Interface

Docker 생성 단계

1 단계 : Dockerfile 작성
2 단계 : Dockerfile 내에 스크립트를 실행한다면 스크립트 작성
3 단계 : Docker 이미지 빌드
4 단계 : Docker Container 실행

https://donotfear.tistory.com/106 요분꺼 고대로 따라서 설치하면 Dokcer가 생성됨

이제 Docker를 직접 해볼 차례(OS version : Ubuntu 24.04 LTS)

  1. 우선 'mkdir'을 통해 작업할 디렉토리를 생성해줘야함.
    mkdir practice_docker
    'practice_docker' 부분은 각자 본인이 설정하고싶은 이름을 설정하면 됨.
  2. 이제 Docker directory에서 Dockerfile 생성하기
    vim Dockerfile 를 입력하면

    요런 편집기가 뜨는데 'i'키를 누르면 쓰기모드로 전환됨

    전환된 상태에서 이미지에 나와있는대로 입력하고 다 작성되면
    esc -> : -> wq! -> enter 누르면 Docker 파일이 저장됨

    이미지에 입력된 코드를 설명하자면
    1. python 3.8 slim image를 베이스로 Docker image를 생성
    2. Work-directory를 app directory로 설정
    3. Local에 있는 main.py 파일을 app directory로 옮김
    4. 해당 python 파일을 실행.
    편집기를 나온 후 커멘드 창에 ls를 입력하면 Dockerfile이 생성된 것을 확인할 수 있음

  • 여기서 이제 Dockerfile은 만들었으니 위의 설명에서 말한 'main.py'파일을 생성해줘야함

main.py도 Dockerfile 만드는 것처럼 vim main.py 를 입력해서 편집을 해줘야 한다. 우린 Docker의 메커니즘만 알면 되니 편집기에 간단하게 print("Hey There")같은 아무거나 출력할 수 있게 print문을 작성해보자

  1. Docker Image 만들기
    이제부터가 중요한데, 지금 Dockerfile과 스크립트 파일인 main.py도 만들어놓은 상태. 그럼 Docker Image를 만들기 위해서 Build라는걸 해야함.
    docker build -t hello-docker .을 입력하고 실행하면
    반드시 명령어 뒤에 . 을 붙여줘야함

    요래 뜨면 성공

이제 그럼 Docker 가 잘 생성 되었는지 확인을 해야하는데, 확인하기 위한 명령어는 docker images를 입력하면

요롷게 2분전에 'hello-docker-world'가 생겨난 것을 알 수 있다.

그럼 여까지 Dockerfile, Script file, Docker Image까지 했으니, 이젠 Container를 만들어줘야함.

docker run hello-docker-world로 실행을 해주면 끄읕 그럼 이전에 작성한 main.py 의 print안의 결과가 출력될 것이다.

profile
please bbbbbbbbb 😂

0개의 댓글