2,993 판독값
2,993 판독값

여기에 내 인생을 변화시킨 몇 가지 Docker 해크가 있습니다.

~에 의해 Pratik Pathak4m2025/05/01
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

Docker는 Docker 기반 애플리케이션을 구축하고 관리하는 강력한 도구입니다.이것은 내 일상 생활의 일부가되었으며, 더 이상 그것에 대해 거의 생각하지 않습니다.
featured image - 여기에 내 인생을 변화시킨 몇 가지 Docker 해크가 있습니다.
Pratik Pathak HackerNoon profile picture

괜찮아, 이 Docker의 진화를 깨뜨리자.사물이 바뀌는 방법은 야만적이다.


Docker가 기분이 들었을 때 기억하십시오... 엉뚱한 옥토퍼를 싸우는 것처럼 느껴졌습니까? 너무 많은 명령, 너무 많은 개념. Build, run, push, pull, volumes, networks... 내 머리가 회전하고있었습니다.해야할, 그러나 그것은 항상 약간 엉뚱한 느낌, 약간 ... 흔들림으로 가득 다.docker ps -a그리고 절망적으로 그걸 기억하려고 노력한다.하나지난주부터의 명령어


그런 다음 천천히, 모든 것이 클릭하기 시작했습니다. 하나의 큰 유레카 순간이 아니라 작은 "아하!"발명 시리즈. 작은 트릭, 최적화, 작업 흐름 조정. 해크, 나는 추측합니까? 그리고 솔직히, 그들은 내 일상적인 일상에 너무 많이 침투하여 더 이상 그들에 대해 거의 생각하지 않습니다.내가 어떻게 일을 하는가.


여기에 갇혀있는 게임 변수 :

Terminal Aliases: The Sanity Savers ️

첫 번째 큰 승리?Aliases.♂️ 왜 내가 몇 달을 쓰는지docker-compose up -d --build또는docker ps다시 한 번 나의 속에 단순한 별자리를 설정하는 것.bashrc또는.zshrc그것은 계시였다.

# My sanity savers
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'
alias dcb='docker-compose build'
alias dcr='docker-compose run --rm' # For running one-off commands
alias dps='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias dip='docker image prune -f'  # Prune dangling images
alias dvp='docker volume prune -f' # Prune unused volumes
alias dsp='docker system prune -af' # The big cleanup! 💥


그냥 타이핑dcu전체 shebang 대신? Oh, milliseconds 저장! 그것은 비정상적인 소리,하지만 하루에 수십 번에 그것을 곱합니다 ... 그것은 추가합니다. 내 손가락은 저를 감사합니다. 적은 입력, 적은 타이포, 더 많은 흐름.


여기에서 docker의 궁극적 인 체이스시트를 얻으십시오 :도커 cheatsheet

2) The Mighty.dockerignore상품명 : Slimming Down Builds

그 후에 그들은.dockerignore다음글 : 또 다른 ‘두’ 순간, 나는 알고 있었다.gitignore물론, 하지만 처음에는 얼마나 중요한지 깨닫지 못했다..dockerignore내 초기 Docker builds 는너무 천천히왜냐하면 건설의 맥락이 전달되었기 때문이다.모든다음은 Docker Daemon 입니다.node_modules, 로그, 임시 파일, 로컬 빌드 유물 ... 모든 것을!


적절한 만들기.dockerignore파일, 내가 필요로하지 않은 모든 쓰레기를 나열내부이미지 빌드 프로세스? 갑자기 빌드가 더 빨라졌습니다. 이미지가 작았습니다 (때때로 극적으로).Docker에 블레이더를 넣는 것처럼 느껴졌습니다.덜 혼란, 더 빠른 피드백 루프. 셰프의 키스!

3.Multi-stage Builds: Lean, Mean Production Machines ➡️

Multi-stage builds... OK, 이 하나는 처음에는 조금 더 진보 된 느낌. 개념은 훌륭합니다.

  • 1단계: 기본 이미지를 사용하여 모든 빌드 도구, 컴파일러, SDK 및 애플리케이션 아르티팩트(예: 컴파일 바이너리 또는 bundled JavaScript)를 생성하는 데 필요한 의존성을 제공합니다.
  • 2 단계 : 새롭고 깨끗하고 최소한의 기본 이미지를 시작하십시오 (알파인 또는 불안).
  • 복사: 첫 번째 단계에서 이 순수한 두 번째 단계로 최종 유물만 복사합니다.


결과? 소형 생산 이미지! 빌드 도구와 개발자 의존성 (또한 보안 위험이있는)으로 팽창 된 이미지를 배송하는 대신에!오직애플리케이션을 실행하는 데 필요한 것이 무엇입니까.내 머리를 구문 주위에 포장하는 데 약간의 시간이 걸렸지만, 이미지 크기와 보안 자세의 차이는 엄청납니다.훨씬 더 전문적이고 더 ... 깔끔합니다. ️

Docker Compose Overrides: Taming Environments에 대한 리뷰 보기

대화해 보자Docker Compose override파일. 다른 환경을 관리하는 것은 고통스러웠습니다. 개발자는 라이브 코드 재로드, 디버그 포트가 열려있는 볼륨을 필요로합니다. Prod는 다른 환경 변수, 어쩌면 더 엄격한 리소스 제한, 아마도 다른 입력 포인트를 필요로합니다.docker-compose.yml혼란스러웠다, commented-out 섹션이나 복잡한 섹션을 포함if환경 변수에 기초한 조건.


발견하기docker-compose.override.yml순수한 행복이었습니다. 당신은 당신의 기초가 있습니다.docker-compose.yml일반적인 구성으로, 그 후에, 당신은 만들 수 있습니다.docker-compose.override.yml(Git가 일반적으로 무시하는.gitignore(override예를 들어, 당신은 심지어 특정 파일을 사용할 수 있습니다.docker-compose.prod.yml그리고 그것을 사용하여-f깃발 :docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d더 이상 우연한 헌신을 하지 마세요! dev settings의 더 이상의 우연한 헌신!

정기적인 청소 : 시스템 Tidy 유지 ✨

마지막으로, 습관은regular cleanupDocker는 축적할 수 있습니다.이렇게 많이당신이 조심하지 않으면 시간이 지남에 따라 잔인합니다.위험한 이미지 (이전 빌드의 해제 된 레이어), 사용되지 않은 볼륨, 중지 된 컨테이너, 오래된 빌드 캐시... 내 디스크 공간은 신비롭게 사라졌습니다.


정기적으로 달리는 리듬에 들어가기docker system prune -af(공격적인 접근) 또는 더 타겟팅docker image prune,docker volume prune,docker network prune그리고docker builder prune디지털 decluttering처럼 느껴집니다.It keeps things running smoothly, prevents weird caching problems ("why isn't my change appearing?!"), 그리고 귀중한 gigabytes를 해방합니다.A clean workspace, a clean mind, right? ♂️ Runningdsp(My Alias for)docker system prune -af)는 이제 만족스럽고 거의 치료적인 일상입니다.


그래서 네, 이것들은 더 이상 '해킹'이 아닙니다. 그들은 뿌리를 내리고 있습니다. 그들은 근육 메모리입니다. 미스터리들은 생각없이 내 손가락에서 날아갑니다..dockerignore그것은 내가 만든 첫 번째 파일 중 하나입니다. 다단계 빌드는 잠재적으로 살아가는 모든 것의 기본입니다.Compose overrides는 환경 차이를 원활하게 처리합니다.Cutting는 정기적으로 발생합니다.


Docker는 그 어리석은 옥토퍼 에서 강력하고 단순화 된 보조자로 갔습니다.이것은 지금 나의 길을 벗어나고 있습니다.Builds는 더 빠르고, 배포는 더 부드럽고, 내 디스크 공간은 더 행복합니다.나는그것은 단지 Docker 자체에 관한 것이 아니라 이러한 작은 세부 사항을 마스터하는 것이 나의 전체 개발 및 배포 작업 흐름을 부드럽게하는 방법에 관한 것입니다. 그것은 확실히 나의 삶의 일부가되었습니다, 또는 적어도 나의 디지털 삶.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks