Docker에 Docker 이미지를 등록해 보았습니다.
6132 단어 dockerfile도커DockerHub
이 게시물에서 작성하는 Docker Image의 환경은 다음과 같습니다. CentOS를 기반으로 rbenv에서 Ruby를 실행 가능한 환경을 작성합니다.
Docker Image 환경
품목
버전
CentOS
7.5
rbenv
1.1.2
루비
2.5.1
Step1: Dockerhub로 푸시(등록)
우선 Step1로서 Dockerhub에 푸시해 Docker 이미지를 등록할 때까지의 흐름을 기재합니다.
흐름으로서는, 이하의 순서로 실시해 갑니다.
이미지 만들기
먼저 Docker Image 작성을 위해 Dockerfile을 준비하고 그 Dockerfile을 바탕으로
docker build
명령으로 Docker 이미지를 빌드합니다.docker build
에서 빌드할 때 -t
명령으로 태그 이름을 지정할 때 {dockerhub 계정 이름}/{태그 이름}으로 등록해야 합니다.아래에서는 내 계정 katsuya61에 등록하기 때문에 katsuya61/ruby입니다.
Dockerfile
FROM centos:7.5.1804
# Install packages for installing rbenv and ruby
RUN yum install -y \
git \
gcc \
gcc-c++ \
openssl-devel \
readline-devel \
bzip2 \
make
# Download rbenv and ruby-build from git
WORKDIR /usr/local
RUN git clone https://github.com/sstephenson/rbenv.git rbenv \
&& git clone git://github.com/sstephenson/ruby-build.git rbenv/plugins/ruby-build
# Setup rbenv.sh file
WORKDIR /etc/profile.d
RUN echo 'export RBENV_ROOT="/usr/local/rbenv"' > rbenv.sh \
&& echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> rbenv.sh \
&& echo 'eval "$(rbenv init --no-rehash -)"' >> rbenv.sh
## Install ruby 2.5.1
RUN source /etc/profile.d/rbenv.sh \
&& rbenv install 2.5.1 \
&& rbenv versions \
&& rbenv global 2.5.1 \
&& ruby -v \
&& rbenv rehash \
&& gem install bundler
ENTRYPOINT tail -f /dev/null
$ docker build -t katsuya61/ruby .
Sending build context to Docker daemon 2.56kB
Step 1/8 : FROM centos:7.5.1804
---> cf49811e3cdb
Step 2/8 : RUN yum install -y git gcc gcc-c++ openssl-devel readline-devel bzip2 make
.
.
.
Successfully built 874315f8ee4c
Successfully tagged katsuya61/ruby:latest
Dockerhub에 로그인
그런 다음 Dockerhub에 Docker Image를 등록 할 수 있도록
docker login
명령으로 Dockerhub에 로그인합니다.다음은 내 katsuya61 계정으로 로그인 한 예입니다.
Username
와 Password
를 들었을 때 적절한 이름을 입력하면 로그인할 수 있습니다.$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: katsuya61
Password:
Login Succeeded
Dockerhub에 등록
마지막으로 Dockerhub에 로그인한 상태에서
docker push
명령을 실행하여 Dockcerhub에 Docker Image를 등록할 수 있습니다.$ docker push katsuya61/ruby
The push refers to repository [docker.io/katsuya61/ruby]
c1e4031ded99: Pushed
e285701df928: Pushed
e301cd8b132c: Pushed
9e6a772197d5: Pushed
4826cdadf1ef: Mounted from library/centos
latest: digest: sha256:e906f932ff696943c7ac5b110f8695ecaecd5c3978d6a89d796b59a623e87534 size: 1372
docker push
나중에 Dockerhub 예제Step2: Dockerhub 이미지 사용
Step2에서는 Step1에서 등록한 Dockerhub의 이미지를 이용하여 새롭게 Docker 컨테이너를 작성해 나가는 순서를 기재합니다.
Dockerhub로 푸시 한 이미지를 사용하여 이미지 만들기
우선, Step1로 등록한
katsuya61/ruby
이미지를 이용해, 새로운 이미지를 작성해 가는 순서를 기재합니다.이 게시물에서는 간단히 다음과 같이 Dockerfile 에
FROM katsuya61/ruby
만을 기재한 이미지를 작성해 갑니다.docker build
에서 작성한 이미지의 태그 이름이 rubytest 였습니다.Dockerfile
FROM katsuya61/ruby
에서 이미지 만들기
$ docker build -t rubytest .
Sending build context to Docker daemon 2.048kB
Step 1/1 : FROM katsuya61/ruby
---> 874315f8ee4c
Successfully built 874315f8ee4c
Successfully tagged rubytest:latest
Ruby 버전 확인
마지막으로 새롭게 작성한 rubytest 의 이미지로 컨테이너를 기동해, Ruby 가 이용 가능한 컨테이너인 것을 확인해 끝입니다.
docker build
로 만든 이미지를 컨테이너로 시작 $ docker run --name test001 -h host001 -itd rubytest
abe0544505b5f726dcf83e226eb19ac221d1b82252a639779031d7f832ab5794
$ docker exec -it test001 /bin/bash
[root@host001 profile.d]# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
덤
게다가 이번에 만든 Docker Image는 여기 에서 사용할 수 있습니다.
Reference
이 문제에 관하여(Docker에 Docker 이미지를 등록해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ksugawara61/items/e98edc767c79fd2856e1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)