• Home
  • About
    • Dochoi의 소소한 코딩 모음 photo

      Dochoi의 소소한 코딩 모음

      코딩을 하면서 느낀점들을 모은 공간입니다.

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
    • AI
    • Algorithm
    • Algorithm-Test
    • Cloud
    • Docker
    • Kubernetes
    • iOS
    • Culture
  • Projects

도커 이미지 다루기

08 Jun 2020

Reading time ~2 minutes

docker

도커 이미지 다루기

학습 목표

도커 이미지를 다루는 방법을 이해한다.

이를 통해 직접 만든 이미지를 다른 사람이 이용할 수 있게 한다.

목차

  • 도커 이미지 다루기
    • 학습 목표

    • 목차

    • 도커이미지란 무엇인가?

    • 도커의 명령 형태

    • docker image build - 이미지빌드

    • docker serach

    • docker image pull

    • docker image ls

    • docker image tag

    • docker image push

도커이미지란 무엇인가?

도커 이미지는 도커 컨테이너를 만들기 위한 템플릿이다.

  • 도커 이미지는 운영 체제로 구성된 파일 시스템, 컨테이너 위에서 실행하기 위한 애플리케이션, 의존라이브러리, 실행 환경 설정 정보까지 포함하는 아카이브다.
  • Dockerfile은 이미지를 구성하는 순서를 기술한 코드이다. 이미지라고 말할 수는 없다.
  • 이미지를 만드는 과정을 일반적으로 도커 이미지를 빌드한다고 한다.
  • 컨테이너를 실행할 때 빌드된 이미지를 사용한다.

도커의 명령 형태

docker COMMAND SUBCOMMAND

같은 형태로 이루어져 있다.

docker help

로 상위 명령을 확인하고

docker COMMAND --help

로 하위 명령을 확인한다.

ex)

docker image --help

docker image build - 이미지빌드

docker image build

는

docker bulid

로 축약된다.

아직 배우는 단계이므로 의미를 분명하게 하기 위해 전자를 사용해 ft_server를 진행 할 것이다.

docker image build -t 이미지명[:태그명] Dockerfile의 경로

-t 옵션

  • 이미지명을 지정한다. 태그명도 지정할 수 있으며, 생략 시에는 latest 태그가 붙는다.

  • -t옵션과 이미지명은 반드시 지정해야 한다고 생각하는 편이 좋다. -t 옵션 없이도 빌드 자체는 가능하지만, 이미지명 없이는 해시값만으로 이미지를 구별해야하므로 사용하기가 상당히 번거롭다.

-f 옵션

  • Dockerfile이 아닌 dochoifile같은 custom파일에 코드를 작성했을 경우 사용한다.

ex)

docker image build -f dochoifile -t example/echo:latest .

–pull 옵션

  • 이미지를 빌드할 때마다 로컬에 있는 이미지를 사용하지 않고 매번 pull로 이미지를 가져온다.
  • 빌드 속도는 느리지만 기반 이미지를 최신으로 사용할 수 있다.

docker serach

레파지토리를 검색해준다

ex )

docker search --limit 5 mysql

docker image pull

docker image pull [options] 레파지토리명[:태그명]

이미지 내려받기

ex)

docker image pull jenkins:latest

docker image ls

보유한 도커 이미지 목록 보기

docker image ls [options] [레파지토리[:태그]]

ex)

docker image ls

여기서 나오는 IMAGE ID는 CONTAINER ID와 별개임을 명심한다.

docker image tag

이미지에 태그 붙이기

도커 이미지의 특정 버전에 태그를 붙일 때 사용한다.

동일한 이름의 이미지를 여러번 빌드하면

이라는 이전의 이미지의 잔재가 남는다. 이는 latest태그는 하나에만 붙을 수 있기 때문이다 docker image tag는 이미지 ID에 태그명을 별명으로 붙인다. ``` docker image tag 기반이미지명[:태그] 새이미지명[:태그] ``` ex) ``` docker image tag example/echo:latest eaxmple/echo:0.1.0 ``` ## docker image push 이미지를 외부에 공개하기 ``` docker image push [options] 레포지토리명[:태그] ``` 네임스페이스를 자신의 도커 허브 ID와 같이 바꿔야한다. ex ``` docker image push dochoi/echo:latest ```


Docker Share Tweet +1