[Docker] volume 사용팁
·
기타/Docker
도커는 유니온 파일 시스템을 사용하고 호스트 OS와 컨테이너 앱에서 발생하는 데이터를 공유 데이터의 영속성과 지속성을 보장하기 위해 (컨테이너는 삭제시 앱 내에서 발생한 데이터가 사라짐) 데이터와 비즈니스 로직을 분리하기 위한 매커니즘이다. volume 은 어디 생성되나? Linux 에서는 기본적으로 호스트 OS의 `/var/lib/docker/volumes` 에서 관리한다. Windows, Mac 에서는 해당 경로에서 찾을 수 없다. 이는 의도한 것으로 사실 volume 은 호스트 OS에서 직접 읽고 쓰는 작업을 위한 용도가 아니라, 컨테이너에서 쓸 영속 데이터를 관리하는 용도이기 때문이다. 호스트 OS에서 직접 쓸 데이터(ex. source code)는 volume 이 아닌 bind mount 를 쓰..
[git] gitlab CI/CD to AWS EC2 (2)
·
기타/git
Gitlab CI operation sequence Git push || merge events occurs Start pipeline on Gitlab-Runner Pull images from docker hub Docker instantiate container according to image Git pull repository (target branch) Execute jobs on Gitlab-Runner Report the result to Gitlab-Server Why Gitlab-Runner use Docker as default? Isolation 실제 구동되고 있는 인스턴스와 무관하게 컨테이너에서 동작함. Flexibility Configuration 변경이 자유로움. Docker ..
[Docker] Docker compose
·
기타/Docker
Why to use 여러 컨테이너를 하나의 yaml 파일로 관리하기 위해. (IaS) When to use? 여러 container 를 하나의 그룹(서비스)으로 실행 로컬호스트 및 개발 단계 보통 Production 으론 쓰지 않는다. Localhost 범위 내에서만 동작하기 때문 여러 host 에서 컨테이너 운영이 필요하면 kubernetees 를 쓰는게 맞다. 특징 Dockerfile 을 대체하지 않는다. image, container 를 대체하지 않는다. 자동으로 network bridge 를 생성해준다. => DNS resolution 을 기본 제공한다. => service name 으로 hostname 을 사용할 수 있다. How to install? Windows, Mac => Docker ..
Docker 개념
·
기타/Docker
Name Description image 상태 저장파일 container image 를 instance화 한것. (running state) image 는 상태를 저장한 프로그램이고 container 는 image 를 실행시킨 프로세스와 같다. 대표 명령어를 보자 아래 명령어는 이미 설치된 image 파일의 이름으로부터 컨테이너를 실행시키는 것이다. $ docker run [image-file-name] --name [container-name] # docker: docker engine program # run: This subcommand is used to create and run a docker container from 'image' Dockerfile 텍스트 문서로 image 를 흉내내기 위..
[Docker] 주요 명령어
·
기타/Docker
TL;DR;💡Container Create from image그냥 컨테이너 빨리 실행시키고 싶다면 다음을 기억하라. $ docker run [OPTIONS] [image-name] [Command]# OPTIONS List# -it : 실행하자마자 stdin/out CLI 시작# -p : 포트 바인딩# --name: 생성될 컨테이너 이름# -d : 백그라운드 실행 (생략시 포그라운드 실행)# Command: 실행할 명령어$ docker run -it -p 7379:6379 --name redis-test redis# => 실행하자마자 CLI를 시작하고# => 호스트 7379 포트를 컨테이너 6379 포트로 바인딩 / 포워딩 하고# => 컨테이너 명은 'redis-test' 며# => 'redis' 라는..
Docker?
·
기타/Docker
Isolated, light weight Linux Process using host kernel 1. 왜 필요한가? 이기종 Device, OS, Windows 기반으로한 Application이 Linux/ MAC OS에서는 돌아가지 않는 경우 ∴ Docker resolve a problem of environment disparity (ex. OS, Programming Language) 어떻게 구성되어있나? Docker 도 클라이언트와 서버로 이뤄져있다. Docker Client CLI , GUI 를 모두 제공한다. Unix Socket 도커는 최소한의 기능을 탑재한 경량화된 리눅스 프로세스라고 했다. Client - Server 간 통신을 Unix 소켓으로 담당한다. Docker Server 기본적..