웹사이트 검색

Docker 파트 4: 사용자 지정 Docker 이미지 빌드 및 게시


이 페이지에서

  1. Docker 파일 소개
  2. Docker 이미지 구축
  3. Dockerfile을 사용하여 로컬에서 빌드\n
  4. Docker 허브에 사용자 지정 Docker 이미지 게시\n
  5. 맞춤형 이미지 다운로드\n
  6. 요약

세 번째 부분에서는 도커 이미지를 실습하고 기본 사항을 배웠으며 WordPress 또는 DokuWiki를 사용하여 첫 번째 메모장 컨테이너를 만들었습니다.

이 네 번째 부분에서는 도커 이미지가 어떻게 구축되는지 살펴보고 다운로드하여 친구, 동료 및 커뮤니티와 공유할 준비가 된 고유한 사용자 지정 이미지를 만들 것입니다.

이 자습서에서는 Whale Docker 이미지를 사용합니다. Whale은 Docker의 공식 마스코트이며 Whale docker 이미지는 메시지와 함께 터미널에서 암소의 ASCII 그림을 생성하는 cowsay 프로그램과 유사합니다. 또한 Tux the Penguin 및 Linux 마스코트와 같은 다른 동물의 미리 만들어진 이미지를 사용하여 그림을 생성할 수도 있습니다.

Docker 파일 소개

이전 부분에서 우리는 Docker Hub에 대해 소개하고 컨테이너 이미지 검색, 이미지 빌드 및 해당 이미지 배포를 위한 클라우드 기반 중앙 집중식 리소스임을 배웠습니다. 또한 도커 이미지는 기본 이미지 위에 있는 다중 레이어 이미지라는 것도 배웠습니다. 즉, 기본 이미지를 사용하면 도커 이미지에 적합한 OS를 처음부터 새로 만드는 번거로움이 사라지고 소프트웨어가 상주할 상위 계층을 사용자 지정할 수 있는 옵션이 제공됩니다.

기본 이미지를 사용하여 사용자 지정 이미지를 만들려면 패키지 및 파일을 설치하고 구성하는 방법에 대한 지침과 함께 제공되는 몇 가지 설정을 Docker 엔진에 제공해야 합니다. 이러한 지침은 "dockerfile\이라는 일반 텍스트 파일로 작성됩니다. Dockerfile은 셰프에게 넘겨주면 셰프가 훌륭한 식사를 요리해 주는 레시피와 같습니다. 이러한 도커 파일은 다음과 같은 간단하고 설명적인 일련의 단계를 사용하여 작성됩니다. \명령어\라고 합니다. 각 명령은 이미지에 새 레이어를 만듭니다. 지침에는 명령 실행, 파일 또는 디렉터리 추가, 이미지에서 컨테이너를 시작할 때 실행할 프로세스 등과 같은 작업이 포함됩니다. 이 프로세스는 셸 스크립트에서 일련의 명령을 설정하는 것과 같습니다. 이미지 빌드를 요청하면 Docker는 dockerfile을 읽고 지침을 실행하고 최종 이미지를 반환합니다.

Docker 이미지 빌드

사용자 지정 Docker 이미지를 빌드하는 방법에는 두 가지가 있습니다. 컴퓨터에서 빌드하거나 앞에서 언급한 Docker 허브를 사용할 수 있습니다. 이 부분에서는 Docker 이미지를 로컬로 빌드한 다음 Docker Hub 레지스트리에 게시하는 방법을 배웁니다.

Dockerfile을 사용하여 로컬에서 빌드

작은 Docker 이미지(Ubuntu 이미지 기반)인 "Whale say " 이미지를 사용하여 사용자 지정 Docker 이미지를 생성할 것입니다. 이 이미지는 실행할 때 사용자가 다시 말하도록 프로그래밍한 내용을 말합니다.

먼저 터미널을 실행하고 다음을 입력하여 새 폴더를 만듭니다.

mkdir mywhale

이 디렉토리는 빌드를 위한 "컨텍스트\ 역할을 합니다. 컨텍스트는 이미지를 성공적으로 빌드하기 위해 필요한 모든 것을 포함하고 있음을 의미합니다.

다음을 사용하여 새 폴더에 들어가십시오.

cd mywhale

다음을 입력하여 폴더에 Dockerfile을 만듭니다.

touch Dockerfile

이제 ll 명령을 실행하면 생성한 빈 Dockerfile이 표시됩니다.

ll
$ ll
total 8.0K
-rw-rw-r-- 1 user user 0 23:26 Dockerfile

즐겨 사용하는 텍스트 편집기로 열고 다음을 추가합니다.

FROM docker/whalesay:latest

FROM 키워드가 포함된 이 첫 번째 지침 라인은 이미지가 기반으로 하는 이미지를 Docker에 알려줍니다. 기존 고래잡이 이미지를 기반으로 새 작업을 진행하고 있습니다.

우리가 추가할 다음 명령은 고래에게 점을 치는 능력을 부여할 것입니다. 이 작업을 수행하기 위해 Ubuntu 리포지토리에서 사용할 수 있는 fortune 패키지를 사용합니다(고래 이미지는 Ubuntu 이미지를 기반으로 함을 기억하십시오). 운세 프로그램에는 고래가 말할 수 있는 현명한 말을 출력하는 명령이 있습니다.

따라서 첫 번째 단계는 설치입니다. 이를 위해 일반적인 apt 설치 지침을 추가합니다.

RUN apt -y update && apt -y install fortunes

이미지에 필요한 소프트웨어가 있으면 이미지가 로드될 때 소프트웨어가 실행되도록 지시합니다. 이를 위해 다음 지침을 추가합니다.

CMD /usr/games/fortune -a | cowsay

위의 줄은 포춘 프로그램이 임의로 선택한 견적을 cowsay 프로그램에 보내도록 지시합니다.

그리고 끝났습니다! 이제 파일을 저장하고 종료합니다.
Dockerfile이 다음과 같이 표시되도록 "cat Dockerfile"을 실행하여 수행한 작업을 확인할 수 있습니다.

cat Dockerfile
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

이제 모든 것이 잘 보이므로 Docker 이미지를 빌드할 시간입니다(및 명령의 . 마침표를 잊지 마십시오).

docker build -t my-docker-whale .

위의 명령은 현재 폴더에서 Dockerfile을 가져오고 로컬 컴퓨터에 "my-docker-whale\이라는 이미지를 빌드합니다.

다음을 사용하여 Docker 이미지가 실제로 컴퓨터에 저장되었는지 확인할 수 있습니다.

docker images

그런 다음 다음을 입력하여 Docker 이미지를 실행할 수 있습니다.

docker run my-docker-whale

실행하면 아래와 같은 이미지가 나옵니다.

Docker 허브에 사용자 지정 Docker 이미지 게시

다음 옵션은 생성된 Docker 이미지를 Docker 허브 리포지토리에 게시하는 것입니다. 이렇게 하려면 계정의 이름, 암호 및 이메일 주소를 제공할 Docker Hub 등록 웹 페이지에서 계정을 만들어야 합니다. 또한 Docker Hub 서비스는 공개 도커 이미지에 대해 무료라는 점을 지적해야 합니다. 계정을 만든 후에는 이전에 만든 이미지를 다른 사람이 사용할 수 있도록 푸시할 수 있습니다.

그렇게 하려면 "my-docker-whale\ 이미지의 ID와 TAG가 필요합니다.

"docker images" 명령을 다시 실행하고 Docker 이미지의 ID와 TAG를 기록해 둡니다. a69f3f5e1a31.

이제 다음 명령을 사용하여 외부 세계로의 여정을 위해 Docker 이미지를 준비합니다(명령의 계정 이름 부분은 Docker Hube 프로필 페이지의 계정 이름입니다).

docker tag a69f3f5e1a31 accountname/my-docker-whale:latest

"docker images" 명령을 실행하고 새로 태그가 지정된 이미지를 확인합니다.

그런 다음 "docker login" 명령을 사용하여 명령줄에서 Docker Hub에 로그인합니다.

로그인 명령의 형식은 다음과 같습니다.

docker login --username=yourhubusername 

프롬프트가 표시되면 비밀번호를 입력하고 Enter를 누르십시오.

이제 새로 만든 리포지토리에 이미지를 푸시할 수 있습니다.

docker push accountname/my-docker-whale

위의 명령은 180ΜΒ의 데이터를 업로드하기 때문에 연결 업로드 대역폭에 따라 완료하는 데 시간이 걸릴 수 있습니다(이 예에서). 완료되면 Docker Hub의 프로필로 이동하여 새 이미지를 확인할 수 있습니다.

사용자 지정 이미지 다운로드

Docker Hub 리포지토리에서 이미지를 가져오려면 로컬 및 원격 이미지가 동일하기 때문에 Docker가 허브에서 가져오기를 거부하기 때문에 먼저 로컬 컴퓨터에서 원본 이미지를 삭제해야 합니다.

이전 부분에서 기억하듯이 도커 이미지를 제거하려면 "docker rmi" 명령을 실행해야 합니다. ID 또는 이름을 사용하여 이미지를 제거할 수 있습니다.

docker rmi -f a69f3f5e1a31

이제 이미지가 삭제되었으므로 Docker 허브에서 계정 이름을 포함하여 "docker run" 명령을 사용하여 리포지토리에서 이미지를 가져오고 로드할 수 있습니다.

docker run accountname/my-docker-whale

이전에 이미지를 삭제했고 더 이상 로컬 시스템에서 사용할 수 없었기 때문에 Docker는 이미지를 다운로드하여 지정된 위치에 저장합니다.

요약

이 파트에서는 Docker 파일을 만들고 몇 가지 기본 지침을 작성하고 이를 레시피로 사용하여 이미지를 빌드하는 방법을 배웠습니다. 또한 새 사용자 지정 이미지를 Docker Hub 레지스트리로 푸시하고 로컬 시스템으로 가져오는 기본 사항도 다루었습니다. 이 Docker 자습서 시리즈의 다음 부분에서는 필요할 때마다 사용자 지정 이미지를 즉시 생성할 수 있도록 이미지 구축 절차를 자동화하는 방법을 보여드리겠습니다. 계속 지켜봐 주세요.