Docker 데스크톱 애플리케이션에서 제공하는 기본 Linux에 기본 콘솔 애플리케이션(예: "zsh" 또는 "nano")을 추가합니다.

Docker 데스크톱 애플리케이션에서 제공하는 기본 Linux에 기본 콘솔 애플리케이션(예: "zsh" 또는 "nano")을 추가합니다.

최근에 설치했어요도커 데스크탑Apple Silicon(Intel이 아닌 ARM)이 탑재된 Mac의 macOS Ventura에 대한 앱 버전 4.22.0. 여러 컨테이너를 성공적으로 가져와 실행했습니다. 하나는 MySQL 데이터베이스 서버용이고 다른 하나는 Postgres 데이터베이스 서버용입니다.

불행하게도 이 서버의 일부 구성 파일을 편집하려고 했을 때 기본 유틸리티가 누락되어 있다는 사실에 놀랐습니다.다루기 힘든쉘과나노미터텍스트 에디터.

단일 컨테이너에서 성공적으로 실행했습니다.

apt update 
apt install nano

이는 단일 컨테이너에서만 작동합니다. 다른 용기는 아직 부족해요나노미터편집하다. 컨테이너의 목적이 서로를 격리하는 것임을 고려하면 이러한 부족함은 이해할 수 있습니다.

이 유틸리티를 다음 위치에 표시하고 싶습니다.모두내 Docker 데스크톱 애플리케이션의 컨테이너입니다.

답변1

도커 이미지의 전체 아이디어는 '아니요'입니다. 방법이 없다. 이미지의 기본 레이어를 변경하려면 해당 기본 레이어를 변경하고 그 위에 이미지를 다시 작성해야 합니다.

여기서의 아이디어는 이미지 레이어가 불변이기 때문에 어떤 버전의 항목이 있는지, 각 지점에서 작동이 보장되는 항목 등을 쉽게 추론할 수 있다는 것입니다.

그래서,

내가 찾은 유일한 조언은 "자신만의 이미지를 만들어라"였습니다.

시스템이 수행해야 하는 작업을 반영합니다. 그러나 실제로는 생각만큼 어렵지 않습니다. 작성해야 할 내용은 4줄입니다. (아래 예시는 의도적으로 장황하게 표현했습니다!)

nano"foobar"라는 이미지가 있고 여기에 및 가 포함되어 있는지 확인하고 싶다고 가정해 보겠습니다 zsh. 글쎄, 당신이 지적했듯이 foobar이미지가 apt소프트웨어를 설치하는 데 사용되는 경우(예: 일종의 데비안 또는 Fedora와 같은 데비안 파생물) 실행하여 apt installs -y zsh nano얻을 수 있습니다. 그런 다음 해야 할 일은 새로운 상태를 기반으로 이미지를 만드는 것뿐입니다.

아주 쉽습니다. 다음 내용으로 텍스트 파일을 만듭니다.

FROM foobar

# Reminder for yourself that you're the one who built this
LABEL maintainer="[email protected]"

# you get to pick a version, relatively freely.
# If you feel like it works for you as you want, I'd recommend to start using 1.something
LABEL version="0.0.1"

# The "line continuation" \ at the end of each line are important; they
# "swallow" the line break character, otherwise the RUN command will break.
#
# Set the frontend for apt to "Don't ask me any questions, please"==noninteractive;
# and be -q (uiet), answer -y (es) to everything
# and also don't install fancy stuff that you get recommended, let's keep this slim
RUN apt-get update;\
    DEBIAN_FRONTEND=noninteractive apt-get install \
    --no-install-recommends -q -y \
    nano \
    vim \
    && \
    apt-get clean && apt-get autoclean

"Dockerfile-improved-foobar"로 저장하고 실행하세요.

docker build -f Dockerfile-improved-foobar -t foobar-with-tools

지금 실행하면 거기에 docker images표시됩니다 foobar-with-tools! dockerhub에서 자동으로 얻은 다른 이미지처럼 사용할 수 있습니다.

관련 정보