| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- MySQL
- ai 에이전트
- MCP
- ai agent
- Agent Loop
- LLM
- 객체지향
- Tool Calling
- dhgrp
- docker network
- SQL문법
- OOP
- 데이터베이스
- 어댑터패턴
- PHP객체지향
- linux 권한
- docker
- SQL
- Laravel
- 인덱스
- 데코레이터패턴
- mcp server
- PHP
- mcp client
- 디자인패턴
- 객체복제
- 라라벨
- 매직메서드
- 소프트웨어설계
- SQL기초
- Today
- Total
목록docker (8)
개발블로그
Windows에서 Docker을 실행할 환경 Windows └─ WSL 2 └─ Linux Distribution │ ├─ Docker Engine ├─ Docker CLI ├─ containerd ├─ Docker Compose │ └─ Container 여기서 설치할 환경은 Windows 자체에 Docker Engine을 설치하는 것이 아니라, WSL 2에서 실행되는 Linux Distribution을 하나의 Linux 환경으로 사용하고 그 내부에서 Docker Engine을 실행 (Docker Desktop을 설치하지 않는 이유는 Docker의 설치 및 Service 관리 구조를 일반적인 Li..
docker [옵션] 명령어설명옵션컨테이너 확인docker ps현재 실행중인 컨테이너 목록 보기-a : 중지된 컨테이너 까지 전체 보기컨테이너 실행/중지/삭제docker start 컨테이너명 docker stop 컨테이너명 docker rm 컨테이너명 - f : 실행 중인 컨테이너 강제 삭제 컨테이너 내부 접속docker exec -it 컨테이너명 bash|sh컨테이너 안으로 들어가기=> 컨테이너 안에서 명령어를 직접 실행할 수 있음 docker exec 컨테이너명 명령어컨테이너 안에서 특정 명령어 실행ex) docker exec laravel-app php artisan migrate ⇒ 라라벨 컨테이너 안에서 마이그레이션을 실행하는 명령어. 로그 확인docker logs 컨테이너명컨..
개념개념Docker Image를 어떻게 만들 것인지 정의한 설정 파일 Application 실행에 필요한 환경을 코드 형태로 작성해두고, Docker은 Dockerfile의 명령을 순서대로 실행하여 Image를 생성함 Application의 실행 환경을 코드로 정의하여 동일한 Image를 반복해서 만들 수 있게 하는 것의의직접 Server나 Container 내부에 들어가서 PHP, Nginx, Library 등을 하나씩 설치하면 환경을 다시 만들 때 동일한 작업을 반복해야 함. => Dockerfile에 필요한 환경을 정의하면 동일한 환경을 반복해서 생성할 수 있다 예시예를들어 PHP Application을 실행하려면 다음과 같은 환경이 필요할 수 있음=> PHP, PHP Extension, Appl..
Docker은 왜 필요한가? Application을 실행하려면 Source Code만 필요한 것이 아니라 해당 Application이 동작할 실행 환경도 필요ex) PHP Web Application이라면 다음과 같은 환경이 필요 할 수 있다: PHP 8.3, Nginx, MySQL 8, Redis 7, PHP Extension, 각종 Library 및 설정 여러 환경에서 동일한 Application을 실행하기 시작하면Source Code가 동일하더라도 Runtime이나 Dependency의 Version, 설정 등이 다르면 동작 결과가 달라질 수 있음. ex) 특정 PHP Version에서만 지원되는 기능 사용, 필요한 PHP Extension이 설치되지 않음 Application이 실행되는 환경을 일..
Container 데이터와 영속성 문제 Container 실행 중 생성되거나 변경된 데이터를 기본적으로 Container의 Writeable Layer에 저장됨., Container를 삭제하면 해당 Container의 Writeable Layer도 함께 제거 됨 => DB 처럼 Container가 다시 생성되어도 유지되어야 하는 데이터는 Container 외부에 저장해야 함. Volumn 개념Container와 독립적으로 데이터를 저장하기 위한 관리형 Storage 명령어명령어역할docker volume lsVolume 목록 확인docker volume create NAMEVolume 생성docker volume inspect NAMEVolume 상세 정보 확인docker volume rm NAM..
Docker Port 개념Host/외부 → Container 접근 Container은 별도의 Network 환경을 가짐 (Host와 분리된), Container 외부에서 해당 Service에 접근하려면 Container Port를 Host에 공개(publish) 해야 함 방법 - Port Mapping-p Host_IP:Host_Port:Container_Port - Host_IP는 생략시 => 일반적으로 Host의 Network Interface에 Port가 Publish 됨. ex)docker run -d \ --name web \ -p 8080:80 \ nginx # Host Port - 8080 => 외부에서 접근할 Port# Container Port - 80 => Container 내부..
개념 Container을 실행하기 위해 필요한 File, Binary, Library, 설정 등을 포함한 표준화된 Package ex) PHP Application을 실행하기 위한 Image PHP Image│├─ PHP Runtime├─ PHP Extension├─ Library├─ Application Code└─ Configuration 특징 한 번 생성된 Image 자체의 내용을 직접 수정 하는 방식이 아니라, 변경이 필요하면 새로운 Image를 생성=> Docker Image는 여러 Layer로 구성되며 각 Layer는 File System의 변경 내용을 나타냄 = Container가 생성될 때는 Image위에 쓰기 가능한 Container Layer가 추가됨. 따라서 실행 중 Containe..
필요한 이유 Container가 하나라면 docker run만으로도 충분함. 하지만 실제 Web Application은 여러 Container가 함께 동작하는 경우가 많음. 여러 docker run 명령을 기억해저 실행하기보다 Application 전체 Container 구성을 하나의 설정으로 관리할 방법이 필요해짐 Docker Compose란? 여러 Container로 구성된 Application을 하나의 YAML 설정 파일로 정의하고 관리하기 위한 Docker 도구compose.yaml ↓ docker compose up ↓ Application에 필요한 여러 Container 실행 compose.yaml 기본 구조 services: 서비스이름: 서비스옵션: ..