본문 바로가기

docker

(4)
container가 생성되는 과정 (3) - network 이번 게시글에서는 container가 생성되었을 때, 어떻게 host server와 완전히 분리된 network를 사용할 수 있게되는지, 또 container에서 외부 network와 어떻게 통신할 수 있는지 확인해보자..! Docker Network ?? 일반적으로 흔히 사용하는 container 생성/관리 오픈소스인 docker는 다음과 같은 container network을 지원한다. host - host의 network를 그대로 사용하는 방식 bridge - host network와 bridge를 생성하여 통신하는 방식 overlay - 물리적으로 독립된 docker network를 구성하여 통신하는 방식 none - network에 연결되지 않는 방식 이번 게시글에서는 가장 흔히 사용되는 bri..
container가 생성되는 과정 (2) - file system https://almostgeneral.tistory.com/16 ( container가 생성되는 과정 (1) - computing resource ) 에 이어서 2번째로 file system이 어떻게 생성되고 할당되는지 알아보자! Docker의 File System docker는 UFS(Union File System)기반으로 동작한다. UFS? UFS는 여러 개의 파일 시스템을 하나의 파일 시스템으로 취급할 수 있도록 해주는 것. 흔히 Container와 Image의 차이를 Linux에 비유하여 아래와 같이 표현한다 Image - Binary Container - Process Container 생성 시 base image를 이용하여 container를 생성하고, 생성 이후에 User가 정의한 여러 ..
container가 생성되는 과정 (1) - computing resource Host와 (논리적으로) 분리된 환경에서 동작하는 container는 복잡한 과정을 거쳐서 생성된다. 어떻게 가능한 것일까? 실제로 물리적인 서버에서 동작하는 process이면서, 별도의 resource를 가지고 network 환경까지도 분리하여 동작이 가능한 것인가..!? (마치 다른 서버에서 동작하는 것 처럼!?) 나와 비슷한 궁금증을 갖고 있는 분들에게 이번 게시물이 도움이 되길 바란다. linux namespace? linux에서 namespace는 프로세스를 실행할 때, 시스템의 resource를 분리해서 사용할 수 있도록 도와주는 기능이다. 일반적으로 linux에서 process를 실행할 때, 부모 process인 pid 1가 속해있는 namespace와 같은 namespace에서 동작을 하는..
set -e 와 exec "$@" docker에서 많은 docker-entrypoint.sh 파일을 보면 아래와 같은 구조를 확인할 수 있다 #!/bin/bash set -e ... code ... exec "$@" set -m 과 exec "$@"은 무엇인가? FROM ubuntu:20.04 COPY ./docker-entrypoint.sh ./docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] CMD ["ps", "-ef"] 기본적으로 위와같은 Dockerfile이 있을 때, CMD에 선언된 명령은 ENTRYPOINT에 인수로 전달되어 1개의 명령으로 실행됩니다. ex) # ./docker-entrypoint.sh ps -ef 하지만 exec "$@"을 이용하면 "이 .sh 스크립트..

반응형