도커, 처음부터 이미지 시작


6

다른 사람의 이미지 를 Docker기반으로하는 모든 시작 안내서 docker그러나 base이미지 조차도 180MB의 가상 스토리지가 있습니다. 그래서,

궁금 docker합니다. 부모 이미지없이 이미지를 처음부터 완전히 시작할 수 있습니까? (그렇다면 넷 설치를 통해 나만의 기본 이미지를 만들 계획입니다).

PS 자세한 내용은 여기를 확인 하십시오.Docker

감사

답변:


5

그것을 찾아라,

Docker 용 기본 상자를 작성하는 방법

내가 항상 해왔 던 단계를 되짚어보십시오.

먼저 debootstrap이 설치되어 있는지 확인하십시오 :

 sudo apt-get install debootstrap

그런 다음 최신 mkimage-debootstrap.sh를 받으십시오.

sudo sh -xc 'curl https://raw.githubusercontent.com/dotcloud/docker/master/contrib/mkimage-debootstrap.sh > /usr/sbin/mkimage-debootstrap.sh' sudo chmod 755 /usr/sbin/mkimage-debootstrap.sh

빌드 단계는 매우 간단합니다.

mkimage-debootstrap.sh sfxpt/debian sid

데비안과

mkimage-debootstrap.sh sfxpt/ubuntu saucy

우분투 도커 이미지를 만들기 위해.

모든 누락 된 세부 사항은 위의 URL을 확인하십시오. 그리고 또한,

Docker에 대한 기본 이미지를 어떻게 만들 수 있습니까


2

Docker Hub는보기 좋은 곳입니다. 젠투는 GitHub뿐만 아니라 일반적인 환경 설정이지만 Docker Hub의 레지스트리에는 종종 DOCker 컨테이너를 만드는 데 사용되는 dockerfile에 대한 링크가 있습니다.

또한 Docker 컨테이너를 서로 중첩시킬 수 있습니다. Docker Compose를 사용하여 참조 이미지 푸시를 yourname / mycustom-container-squash로 가져올 수도 있습니다.

Dockerfile 
FROM myname/my-custom-container 
ADD Build-all-my-crap.sh
RUN Build-all-my-crap.sh

VirtualBox와 함께 BusyBox의 압축을 푼 바이너리를 사용할 수 있습니다. 즉, 순수한 tar.gz에 대한 데비안 파일 압축 풀기 (예 : bin> tar.gz 등)와 bb-tar.gz를 사용하고 최소한의베이스를 위해 처음부터 tarball의 압축을 풉니 다. .

필자의 경우 Gentoo to Pentoo로 땜질을하고 있었지만, iso> out은 squashfiles에 도달했지만 오버레이를 추가 할 수는 있지만 docker-hub 서버는 너무 오래 걸리면 빌드를 종료합니다. 방금 Gentoo 설치를 Pentoo (customized Gentoo)로 덮어 쓰거나 다음 오버레이를 추가하려고 시도한 다음 rsync/crsync binpackagepkg 목록을 표시하고 빈을 정리 하려고 시도 했지만 다시 시간이 초과 될 수 있습니다.

GitHub의 Jenkler Docker 기본 젠투 패키지

젠투 공식 저장소를 사용했지만 x86 강화를 위해 dockerhub 자동 빌드에서 쉘 도구가 실패하는 경향이 있습니다. (버머)

Jenkler의 방법을 사용하면 최소한의 기본 이미지를 조정할 수 있습니다. 나는 데비안 타르를 일시적으로 싸움에 밀어 넣거나 그냥 넣을 수 있습니다. GitHub는 약간의 LFS를 허용하므로 위의 예와 같이 dir> tarball을자를 수 있습니다. iso와 squashfile을 분리하려고 시도했지만 관심이있는 것처럼 작동하지 않습니다.

necrose99 / my-cx-gentoo base에서 몇 가지 도구를 사용하여 squashfs의 압축을 풉니 다. 즉 일부 보안 연구를 위해 Docker에서 Docker에서 클러스터를 도킹하거나 Pentoo를 chroot로 설정하여 (x11 등을 실행할 수 있음) REAL 설치에 건강하지 않은 빌드 (ALPHA 패키지) 나는 가장 큰 Ebuild 작가가 아니며 최신 보안 도구가 아닙니다).

그러나 내베이스의 새 컨테이너 호출은 빌드 탭에서 이전 / 오래된 / 일부에서 다른 새 컨테이너 호출 다음에
나옵니다
. Docker Hub에서.
무인 항공기를 조종하지 않고 중재자를 모두 화나게하지 마십시오.

어쨌든 웨딩 케이크를 만들기 위해 케이크 레이어와 같은 Docker 이미지를 쌓을 수 있으며 좋은 비유가 될 수 있으며 응용 프로그램을 컨테이너에 넣고 기본 컨테이너에서 빌드 할 수 있습니다. debian / public ...의 my-debian-ngix-www-hugo-docker 등은 데비안이 선택의 여지가 있다면 가능합니다.


1
어쨌든 원하는 Linux OS ( github.com/Jenkler/docker/tree/master/gentoo-base)를 로드 하거나 zip으로 복제 또는 다운로드하고 Linux를 설치하고 각 주요 디렉토리를 tarball에 해킹 할 수 있습니다. 그들의 배포는 공식적인 기반이 아닙니다. 그러나 배포판이 데비안 / 우분투 변형 / redhat / centos / etc 인 경우, 해당 항목에서 쉽게 제거 할 수있는 경우 add repo 명령을 실행하여 deb / rpm repo를 추가 한 다음 패키지를 추가하십시오. IE DEBIAN은 kahli Linux 저장소를 추가하고 pkg를 추가합니다.
Necrose99

1
처음부터 MAINTAINER Mikael Jenkler <info@jenkler.com> ADD gentoo1.tar.xz / ADD gentoo2.tar.xz / ADD gentoo3.tar.xz / ADD gentoo4.tar.xz / ADD gentoo5.tar.xz / CMD [ " / bin / bash "] 어쨌든 그들은 최소한의 젠투 설치를 만들었습니다. ARCH? 등이 적용될 수있다.
Necrose99

1
추가 my-provision.sh
Necrose99

1
my-provision.sh를 추가하십시오; provision.sh bash 스크립트를 실행하여 tarball 샤드의 압축을 풀고 일부 패키지를 git pkg-manager 명령 (예 : apt-get / equo / emerge / yum / packman 일부 패키지)을 압축 한 다음 기본 컨테이너를 다른 이미지로 호출 할 수 있습니다. virtualbox livedvd, 배포판을 CHROOT로 압축 해제, debian net install, gui 용 virtualbox 재부팅 및 docker compose 실행, dockerfile을 통해 이미지는 docker hub 자동 빌드를 통해 업데이트 할 수 있습니다.
Necrose99

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.