Docker(27)
-
Docker 커맨드와 컨셉 이해
Docker 커맨드와 컨셉 이해이 섹션은 Docker 이미지를 생성하고 관리하면서 디폴트 커맨드와 엔트리포인트(Entrypoint)를 설정하는 중요성에 대한 설명입니다. 각 단계의 역할과 결과를 간단히 정리하면서 자세히 설명하겠습니다. 1. Ubuntu 이미지 기반 컨테이너 생성 및 Git 설치docker container run -it --name image-dev ubuntu:latest /bin/bashapt-get update apt-get -y install gitgit versiondocker container diff image-dev이 단계에서 한 일:ubuntu:latest 이미지를 기반으로 컨테이너를 생성하고, Bash 셸(/bin/bash)을 실행합니다.Git 설치:컨테이너 내부에서..
2024.12.06 -
Docker Compose
Docker Compose1. Docker Compose란?Docker Compose는 여러 Docker 컨테이너로 이루어진 애플리케이션을 정의하고 관리하는 데 사용되는 도구입니다. 단일 YAML 파일을 작성하여 서비스(컨테이너), 네트워크, 볼륨 등을 설정하고, 단일 명령으로 애플리케이션의 모든 구성 요소를 실행, 중지 및 관리할 수 있습니다. 2. Docker Compose의 필요성컨테이너 기반 환경에서는 보통 하나의 애플리케이션이 여러 컨테이너(서비스)로 구성됩니다.예를 들어:웹 서버 (Nginx, Apache)애플리케이션 서버 (Flask, Spring Boot, Node.js)데이터베이스 (PostgreSQL, MySQL, MongoDB)캐시 (Redis, Memcached)메시지 브로커 (Ra..
2024.11.29 -
shell vs exec
Dockerfile에서 명령어를 실행할 때, Shell Form(쉘 형식)과 Exec Form(exec 형식)의 두 가지 방법이 있습니다. 이 둘의 차이를 이해하는 것은 Dockerfile 작성의 핵심 중 하나입니다. 아래에서 두 형식의 차이와 장단점을 설명하겠습니다.1. Shell Form (쉘 형식)구문CMD echo "Hello, World!"쉘 형식은 명령어를 /bin/sh -c를 통해 실행합니다.명령어가 문자열 형태로 전달되며, 쉘이 이를 해석하여 실행합니다.동작 방식Docker는 기본적으로 /bin/sh -c를 통해 명령을 실행합니다.복잡한 쉘 명령어(&&, ||, 파이프 |)를 사용할 수 있습니다.장점유연성:쉘의 모든 기능(변수 확장, 파이프, 조건문 등)을 사용할 수 있습니다.CMD ech..
2024.11.25 -
Bridge Network
Docker의 Bridge 네트워크란?Bridge 네트워크는 Docker의 디폴트 네트워크 드라이버 중 하나로, 동일한 Docker 호스트 내에서 실행되는 컨테이너 간의 통신을 가능하게 하는 가상 네트워크입니다. Docker는 컨테이너 간 통신을 격리하고 효율적으로 관리하기 위해 디폴트로 이 Bridge 네트워크를 사용합니다. Bridge 네트워크의 주요 특징호스트와 컨테이너 간 가상 네트워크 제공:컨테이너가 네트워크 인터페이스를 통해 서로 통신할 수 있도록 브리지(Bridge)를 생성.브리지는 호스트와 컨테이너 사이의 네트워크 연결을 중재합니다.컨테이너 간 통신 허용:동일한 Bridge 네트워크에 연결된 컨테이너들은 서로 통신할 수 있습니다.다른 네트워크의 컨테이너나 호스트 네트워크와는 격리됩니다.디폴..
2024.11.21 -
Linux Name
리눅스에서 name이라는 개념은 여러 맥락에서 사용되며, 보통 식별자, 명칭, 또는 엔티티를 표현하는 문자열로 이해할 수 있습니다. name은 특정 객체나 자원을 구분하거나 참조하는 데 사용됩니다. 리눅스 환경에서는 파일, 프로세스, 네트워크 인터페이스 등 다양한 시스템 요소에 대해 이름을 부여하고, 이를 통해 상호작용합니다.리눅스에서 name의 주요 사용 사례1. 파일 이름리눅스에서 파일은 디렉터리 구조 내에서 특정 이름으로 식별됩니다.파일 이름은 파일 시스템 내의 경로(path)로 확장될 수 있습니다.예: /home/user/document.txt관련 명령어:ls: 디렉터리의 파일 이름을 나열.mv, cp: 파일 이름 변경 또는 복사.특징:파일 이름은 절대 경로(absolute path) 또는 상대 ..
2024.11.21 -
alpine
Alpine은 Linux 기반의 가벼운 배포판 중 하나로, 보안, 최소한의 리소스 사용량, 빠른 부팅 속도 등을 목표로 설계되었습니다. Alpine Linux는 컨테이너 환경에서 특히 유용하며, 간소화된 환경을 제공하기 위해 BusyBox와 musl libc를 사용합니다.Alpine의 주요 특징작은 크기기본 이미지 크기가 약 5MB로 매우 작습니다.이러한 크기 덕분에 컨테이너 배포 속도가 빠르고, 저장소 용량 절약이 가능합니다.보안 중심 설계디폴트로 불필요한 패키지가 거의 없으며, 최소한의 소프트웨어만 포함되어 있습니다.grsecurity와 같은 보안 기능을 지원해 더 안전한 환경을 제공합니다.빠른 부팅가벼운 구조로 인해 시스템 부팅 및 컨테이너 시작 속도가 매우 빠릅니다.모듈형 구성필요에 따라 최소한의..
2024.11.21