Skip to content
Beside the Wheel
Search
Ctrl
K
Cancel
Email
GitHub
Select theme
Dark
Light
Auto
공부
(5)
spot 인스턴스에서 서버 가용성 개선하기
eBPF로 서버 성능 Profiling하는 법: Pyroscope의 구현 살펴보기
정수론부터 RSA까지
strace로 shaka-packager 버그 추적
Kubernetes The Hard Way
TIL
(956)
AI
(43)
DevOps
(230)
Network
(61)
OS
(155)
개발
(113)
데이터베이스
(64)
서버
(72)
수학
(20)
알고리즘
(24)
암호학
(32)
언어
(113)
컴퓨터구조
(5)
코드
(24)
독후감
(43)
과학
(1)
사회
(2)
산문
(3)
소설
(12)
인문
(11)
자기계발
(7)
철학
(7)
생각
(6)
고민
변화에 대하여
의식의 영역에 대하여
본질을 보려면
짧은 생각들
소유냐 존재냐
회고
(14)
2022.03-04 대덕소마고 입학소감/다짐
2022.05-08 프로젝트와 인간관계
2022.09-2023.02 불안과 판단
2023.03-07 DMS 리더 회고
2023.08-11 나는 누구인가?
2023.12 더 많은 걸 배우기 위한 경험
2024.01-02 회사 인턴 회고
2024.03-04 고3 근황
2024.05-07 고등학교 마무리
2024.08-12 첫 회사
2025.01-03 입출력
2025.03-08 효능감이란 무엇일까
2025.09-12 연말회고
2026.01-08 담론
Email
GitHub
Select theme
Dark
Light
Auto
태그: docker
총 15개의 글이 있습니다.
Docker Image Layer
docker
2024. 3. 13.
Lets take a contrived example Dockerfile: FROM busybox RUN mkdir /data imagine this is downloading source code RUN dd if=/dev/zero bs=1024 count=1024 of=/data/one RUN chmod -R 0777 /data imagine this is compiling the app RUN dd if=/dev/zero bs=1024 count=1024 of=/data/two RUN chmod -R 0777 /data and now this cleans up that downloaded source code RUN rm /data/one CMD ls -alh /data
dockersock 권한에러
docker
2024. 3. 13.
docker 설치 후 /var/run/docker.sock의 permission denied 발생하는 경우 docker 설치 후 usermod로 사용자를 docker 그룹에 추가해도 permission denied가 발생했다. docker ps -a Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied 해결 /var/run/do
DockerSwarm
docker
2024. 3. 13.
Docker Swarm은 도커에서 자체적으로 제작한 컨테이너 오케스트레이션 도구이다. Docker Swarm을 사용한다면 여러 컨테이너의 배포를 관리하고, 네트워크 및 컨테이너 상태를 제어 및 모니터링 할 수 있다. 쿠버네티스와의 차이? 컨테이너 오케스트레이션을 위한 툴로는 여러가지가 있는데 그중 가장 널리 쓰이는 것은 쿠버네티스로, 사실상 표준 기술로 자리잡았다 볼 수 있을 정도로 널리 쓰이고 있다. 하지만 도커 스웜(Docker Swarm)은 Mirantis가 Docker의 엔터프라이즈 플랫폼 사업을 인수한 이래로 유지보수 단계에 접어들어 더 이상의 발전과 기능 추가를 기대할 수 없게 되었다. 그렇다면 도커 스웜보다는 쿠버네티스를 배우는게 좋지 않을까? 굳이 도커 스웜을 사용해야하는 이유가
exec user process caused exec format error
docker
2024. 3. 13.
docker image build시 이런 에러가 날 때가 있다. bash exec user process caused “exec format error” m1으로 빌드한 이미지를 서버가 arm 운영체제인 상황에서 돌리려고 할 떄 나는 에러이다. 이 경우 이미지 빌드시 플랫폼을 지정해줌으로써 해결할 수 있다. bash docker buildx build --platform=linux/amd64 ... [Buildx]( Docker는 multi-architecture 빌드 등, 다양한 빌드 옵션을 지원하는 CLI 플러그인인 Buildx를 제공한다. Docker Desktop을 사용하는 Windows나 MacOS 사
Overlay Network
docker
2024. 3. 13.
!image 경로로 bridge 네트워크와 연결된다 * bridge를 통해 Single-host networking 효과를 낼 수 있다 * 외부에서 접근시에는 port-mapping이 필요하다 bash $ docker container Usage: docker network COMMAND Manage Docker networks Options: --help
Private registry 구축
docker
2024. 3. 13.
🐳 Private registry 구축 내부 Private Cloud 환경에 적용가능한 Docker Private Registry를 구현해보자. 구현하는 이유와 목적은 다음과 같다. Docker Hub등의 Public Registry의 경우 하나의 이미지만 private 등록이 가능하고 organization의 경우 비용을 지불해야 하지만, Private Registry는 제한이 없다. 개인 공간에서 보다 많은 권한을 부여하여 사용할 수 있다. Docker Private registry는 내부망에 Registry를 쉽게 구축해서 프로젝트 단위의 이미지를 관리하기 위한 좋은 방법이다. 1. Docker registry Images 가져오기 bash docker pull registry:
Prune
docker
2024. 3. 13.
Docker를 오랜 시간 사용하게 되면 여러가지 오브젝트들이 시스템에 쌓이게 된다. 컨테이너나 이미지는 많으면 수십 수백개까지도 늘어난다. Docker 컨테이너, 이미지, 볼륨은 사용중이 아니더라도 디스크를 차지하고 있다. 오브젝트들을 일일히 삭제하거나 통째로 날려버릴 수도 있지만, 사용하지 않는 오브젝트들을 파악해 빠르게 시스템 자원을 확보하는 방법도 있다. prune 서브 커맨드가 바로 이런 역할을 한다. Prune 커맨드를 사용하면 사용하지 않는 컨테이너, 볼륨, 이미지를 일괄적으로 삭제할 수 있다. container docker container prune `--filter` 옵션으로 특정 오브젝트만 삭제할 수도 있다. 중지된 지 1시간 이상 지난 컨테이너만 삭
README
docker
2024. 3. 13.
도커는 LXC(리눅스 컨테이너스)라는 커널 컨테이너 기술을 이용하여 만든 컨테이너 기술 중 하나로, 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 컨테이너를 모듈식 가상머신처럼 유연하게 사용하여 애플리케이션을 안정적으로 배포 및 구축할 수 있도록 한다. 또, 이미지 기반 배포 모델을 제공하고 여러 환경 전반에서 애플리케이션 또는 서비스를 모든 종속 항목과 손쉽게 공유할 수 있다. 운영체제를 가상화하지 않는 컨테이너 기술이기 때문에 가상머신에 비해 가볍고, 한 대의 서버에 여러 애플리케이션을 실행하기 좋다. 단일한 물리적 컴퓨터 위에서 여러 애플리케이션을 돌릴 수 있기 때문에 물리적 하드웨어의 컴퓨팅 용량을 효율적으로 사용할 수 있다. 가상머신(VM)들과 달리, 기존 리눅스 자원(디스크, 네트워크 등)을 그대
가상화와 컨테이너
docker
2024. 3. 13.
가상화 가상화는 단일 컴퓨터의 프로세서, 메모리, 스토리지 등과 같은 하드웨어 요소를 가상 머신(VM, Virtual Machine)이라고 하는 다수의 가상 컴퓨터로 분할할 수 있도록 해주는 추상화 계층을 구축하는 기술을 말한다. 실제로는 컴퓨터의 일부에서만 실행됨에도 불구하고, 각각의 VM은 자체적으로 운영체제(Guest OS)를 실행하며 마치 여러개의 컴퓨터인 것 처럼 독립적으로 작동된다. ✔️가상화의 장점 1. 리소스 효율성 가상화 이전에는 애플리케이션마다 별도의 서버를 구성해야했다. 그렇기 때문에 한 애플리케이션이 유휴상태에 있을때는 서버가 활용되지 못한 채 방치된다. 하지만 서버 가상화를 사용하면 단일한 물리적 컴퓨터 위에서 여러 애플리케이션을 돌릴 수 있기 때문에
도커 네트워크
docker
2024. 3. 13.
Docker 컨테이너(container)는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와의 통신이 불가능하다. 하지만 여러 개의 컨테이너를 하나의 Docker 네트워크(network)에 연결시키면 서로 통신이 가능해잔다. 다시말해, Docker 네트워크는 컨테이너 간 네트워킹이 가능하도록 도와주는 역할을 한다. 네트워크 종류 Docker는 목적에 따라 다양한 종류의 네트워크 드라이버를 지원한다. 그 종류에 대해 알아보자. none none 네트워크에서 도커 컨테이너는 서로 독립되어서, 정보를 전혀 주고받을 수 없다. 호스트 외부로 접근하는 경우에도 네트워크가 연결되지 않는다. host host 네트워크에서는 host와 컨테이너가 네트워크의 구분 없이 서로 면결
도커 네트워크 명령어
docker
2024. 3. 13.
Docker 컨테이너(container)는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와의 통신이 불가능하다. 하지만 여러 개의 컨테이너를 하나의 Docker 네트워크(network)에 연결시키면 서로 통신이 가능해진다. 컨테이너 간 네트워킹이 가능하도록 도와주는 Docker 네트워크에 대해 알아보도록 하자. 네트워크 조회 `docker network ls` 명령어를 사용하면 현재 생성되어 있는 Docker 네트워크 목록을 조회할 수 있다. bash $ docker network ls NETWORK ID NAME DRIVER SCOPE 143496b94e57 bridge bridge
도커 명령어
docker
2024. 3. 13.
유용한 도커 명령어를 모아놓은 파일입니다 도커 빌드(dos) js docker build --build-arg DEPENDENCY=build/dependency -t ${유저명}/${레포명} --platform linux/amd64 . docker push ${유저명}/${레포명} 도커 설치, 실행(linux) js sudo yum install docker sudo systemctl start docker 도커 허브에서 이미지 pull 및 실행(linux) js sudo docker pull ${유저명}/${레포명} sudo nohup docker run -p 8080:8080 ${유저명}/${레포명} & 환경변수 파일로 등록 js sudo
도커 스토리지
docker
2024. 3. 13.
여러 작업 중 컨테이너 내부에서 생성한 정보, 파일은 컨테이너가 종료된 후에 모두 사라진다. 이러한 데이터를 저장하려면 별도의 저장공간이 필요한데, 컨테이너가 동작 중인 상태에서는 접근이 제한되기 때문에 직접 옮기기는 쉽지 않다. 도커는 스토리지에 파일을 저장하여 컨테이너가 종료되더라도 파일을 유지할 수 있도록 한다. 스토리지는 원본 이미지를 수정 하는 대신 변경된 정보를 따로 저장하고, 원본 데이터와 변경된 정보를 조합해서 복원하는 식으로 데이터를 읽는다. 이렇게 하여 원본 이미지를 수정 할 필요 없이 각 컨테이너마다 다른 정보를 저장 할 수 있다. 스토리지 종류 도커 스토리지의 종류는 3가지가 있다. Volume, bind mount, tmpfs mount이다. 아래 그림은
도커 아키텍처
docker
2024. 3. 13.
도커는 client-server architecture를 사용한다. 도커 Client와 Daemon은 UNIX Socket 또는 Network Interface를 기반으로하는 REST API를 사용하여 커뮤니케이션한다. Client에서는 Docker Daemon에 명령어를 보내서, 컨테이너를 빌드, 실행 및 배포하도록 한다. 도커 Client와 Daemon은 같은 시스템 안에서 실행될 수도 있고, remote Docker Daemon에 Client를 연결하여 사용할 수도 있다. 아래 사진을 보며 도커 아키텍처 구조에 대해 더 상세히 알아보자. 라고 부르는데, 이를 위한 방법은 크게 2가지로 나뉜다. 1. 호스트의 도커 데몬을 사용(마운트)하여 도커 컨테이너 내부에서 호스트의 도커 데몬을 사용하는 방법 2. 도커 컨테이너 내부에서 '실제' 도커를 사용하는 방법 1. 도커 컨테이너 내부에서 호스트의 도커 데몬을 사용하는 방법 이 방법은 도커 컨테이너 내부에서 도커를 사용할 때, 도커 컨테이너 내부의 도커가 아닌, 호스트의 도커 데몬을 사용해서 도커를 사용하는 방법이다. 도커 데몬에게 명령을 내릴 수 있는 인터페이스인 'docker.sock' 파일을 마운트해서 실행하면 된다. 이렇게 설정해주면 도커 컨테