dockerfile에 대해 알아보고 apache를 시작할 때까지의 메모

소개



지난번에는 Docker의 명령 조작을 배우기 위해 주요 조작의 기사를 썼습니다.
그 밖에도 여러가지 조사하고 있으면 dockerfile 되는 것도 있어 그것을 사용해 이미지를 작성한다고 하는 것이었습니다.
본 느낌 어려울 것 같고 저항이 있었습니다만, 그런 것이야말로 시험해 나가지 않으면 안 된다고 생각해 보았으므로 비망 녹건 정리용으로서 기사로 해 보고 싶습니다.

dockerfile이란 무엇입니까?



컨테이너를 만들 때 docker hub에서 원하는 이미지를 가져 와서 컨테이너를 만들거나 최소한의 이미지에서 스스로 새 미들웨어를 추가 한 것을 이미지화하고 배포하면 많은 정보가 나왔습니다. 하지만, 스스로 이미지를 처음부터 작성하는 경우 등에 사용하는 파일입니다.
dockerfile은 기본 이미지에 대한 작업을 설명합니다.

dockerfile을 사용하는 이점


  • OS 및 다양한 미들웨어와 같은 설정을 코드로 관리 할 수 ​​있습니다
  • 상기에 의해 세밀하게 설정된 환경을 누출 없이 간단히 재작성하거나 동일한 환경을 준비하고 싶은 사람에게 배포할 수 있다.
  • jenkins와 같은 CI 도구를 사용하여 이미지 생성 및 컨테이너 배포를 자동화 할 수도 있습니다 (답니다)

  • 쓰기에 대해



    조사해 보았습니다만 상당히 어려울 것 같습니다 (웃음)
    우선 쉽게 코드에 대해
  • FROM 이미지 이름 → 기본 이미지를 지정합니다
  • LABEL → 관리용 정보 등을 기재하는 버전 정보나 무엇을 만들기 위한 dockerfile입니다
  • RUN → 명령 실행을 명령하는 리턴 키의 역할 (이 녀석이 명령을 실행하는 느낌)
  • CMD → 컨테이너 시작시 파일 및 명령을 실행하는 명령어 설명
  • ENV → 환경 변수 설정

  • 대략은 이런 느낌이었습니다. 그 밖에도 많이 있었습니다만, 일단 이것 정도로 해 두었습니다. ( 기억하는 자신감)

    실제로 써보자



    쉽게 apache 용 dockerfile을 작성해보십시오.

    dockerfile
    FROM centos:centos7        #ベースになるイメージ指定
    RUN yum -y update          #パッケージ更新
    RUN yum -y upgrade         #更新、不要なもの削除(してくれるらしい)
    RUN yum install -y httpd   #apacheインストール
    RUN systemctl enable httpd #apache自動起動設定
    EXPOSE 80                  #ポート開放
    

    할 수 있었으므로 상기 파일을 사용해 이미지의 작성을 해 보겠습니다.
    $ docker build -t apache .
    

    ずーーーー와 실행되어 끝난 것 같기 때문에 이미지가 되어 있는지 확인해 보겠습니다.
    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    apache              latest              827d4f21614f        15 seconds ago      599MB
    

    있었다! apache라는 이름으로 만들었기 때문에 만들어졌습니다.

    이미지에서 컨테이너를 만들고 시작



    시작
    $ docker run --privileged -d -p 80:80 apache /sbin/init
    8a86bb505eca2b7143ac70a1033e34205ffbbccf48a3ca89e96031194b00ffd9
    

    확인
    확실히 기동하고 있는 것을 알았습니다!
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
    8a86bb505eca        apache              "/sbin/init"        9 seconds ago       Up 8 seconds        0.0.0.0:80->80/tcp   sweet_hodgkin
    

    실제로 액세스하고 확인! !





    테스트 페이지가 표시되었기 때문에 문제 없을 것 같습니다! ! !

    덧붙여서 centos7의 경우는 컨테이너의 기동을 상기와 같이 하지 않으면 잘 apache가 잘 기동하지 않는 것 같습니다. (엄청 빠졌어)
    여기 근처의 기동 방법과 컨테이너내의 움직임에 대해서는 다시 조사해 써 주시면 좋겠습니다.

    요약


  • Dockerfile은 기본 이미지에 대한 명령을 설명합니다
  • 구축 과정의 명령이나 기동시의 명령도 코드로서 관리할 수 있다
  • 실행만으로 여러 번 동일한 환경을 실수없이 만들 수 있습니다
  • 아직 공부하지 않으면 docker를 다루고 환경 구축은 엄격해 w
  • 좋은 웹페이지 즐겨찾기