Dockerfile로 환경 구축 자동화

4679 단어 dockerfile도커

소개



본 기사는 동영상( htps: //같다. 베 / RYX 치 tg는 14 )에서 설명에 사용하고 있다
슬라이드를 기사화한 것입니다. 동영상과 함께 봐주세요.
RYXtItghA14

※기사화할 때에 보충 설명을 가필하고 있어, 내용은 동영상의 슬라이드와 다릅니다.
※본 기사의 내용은 2020년 3월 시점의 내용입니다. OS나 미들웨어, Docker의 버전이 다르므로 기재된 내용으로 완료되지 않는 경우가 있습니다.

Dockerfile로 할 수있는 일


  • 이미지 다운로드
  • 컨테이너 이미지에서 쉘 명령 실행
  • 로컬 파일을 컨테이너 이미지로 전송
  • 실행 사용자 전환


  • Dockerfile로 할 수없는 일


  • 데몬 (서비스) 시작
  • 웹 앱 환경 구축에서의 DB에의 초기 DB 구축 등은 할 수 없다


  • Docker 명령 목록




    명령
    개요


    FROM
    이미지 지정

    LABEL
    메타데이터 설정

    ENV
    환경 변수 설정

    RUN
    컨테이너 내에서 명령 실행

    COPY
    파일, 디렉토리를 로컬 → 컨테이너, 컨테이너 → 로컬로 복사

    ADD
    파일, 디렉토리를 로컬 → 컨테이너에 추가. .tar 파일을 압축 해제할 수 있습니다.

    CMD
    RUN의 파라미터를 설정. RUN 실행 후 지워짐

    WORKDIR
    작업 디렉토리 지정

    ARG
    docker build 명령의 인수 정의

    ENTRYPOINT
    컨테이너에 명령과 인수 제공

    SHELL
    컨테이너 내의 실행 쉘 지정 및 설정

    USER
    사용자 전환



    실행 명령


    docker build -t [イメージタグ] .
    

    동영상에서 사용한 Dockerfile


    # centos7のイメージを利用する
    FROM centos:7
    LABEL maintainer=Takemi
    
    SHELL ["/bin/bash", "-o", "pipefail", "-c"]"
    
    # 累積アップデートの実行
    RUN yum -y upgrade
    
    #rootパスワード設定
    RUN echo "root:docker123" | chpasswd;
    
    #takemiユーザが存在していない場合ユーザ追加する
    RUN echo 'make user takemi'
    RUN adduser -m takemi;echo "takemi:takemi123" | chpasswd;
    
    #sshのインストール
    RUN yum install -y openssh-server
    RUN systemctl enable sshd
    
    #Apacheのインストール
    RUN yum install -y httpd
    RUN systemctl enable httpd
    
    #MariaDBのインストール
    RUN curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
    RUN yum install -y MariaDB-server
    RUN systemctl enable mariadb
    
    RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    RUN yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
    
    #DocumentRoot作成
    RUN mkdir /var/www/webapp
    RUN chown takemi /var/www/webapp
    RUN chgrp takemi /var/www/webapp
    RUN chmod 774 /var/www/webapp
    RUN gpasswd -a apache takemi
    
    
    USER takemi
    COPY index.html /var/www/webapp/
    
    USER root
    RUN chmod 772 /var/www/webapp/index.html
    #RUN systemctl restart httpd
    

    좋은 웹페이지 즐겨찾기