posted by 귀염둥이채원 2018. 12. 28. 11:05

Dockerfile 작성 및 도커 이미지를 빌드하는 방법이다.


Dockerfile에는 대략적으로 아래와 같은 내용이 기술되어 있다.

1. FROM: centos7 이미지를 사용한다.

2. RUN: yum을 이용해서 필요한 패키지를 설치한다.

3. ARG: 변수에 값을 설정하기 위해서 사용한다.

4. RUN: OS 그룹 및 유저를 생성한다. (sudo를 사용할수 있도록 추가)

5. RUN: 디렉토리를 생성 및 권한 추가


# Dockerfile

 FROM centos:centos7

MAINTAINER Programmer


RUN yum -y update;

RUN yum -y install java-1.8.0-openjdk \

    java-1.8.0-openjdk-devel \

    net-tools \

    which \

    initscripts \

    openssh-server \

    sudo \

    tree


ARG GROUP=project

ARG USER=service

ARG USER_PASS=service

RUN groupadd ${GROUP}

RUN useradd -g ${GROUP} ${GROUP}

RUN useradd -G ${GROUP} ${USER}

RUN echo "${USER_PASS}" | passwd ${USER} --stdin

RUN echo "${USER}    ALL=(ALL)       ALL" >> /etc/sudoers


RUN mkdir -p /system

RUN mkdir -p /log


RUN chown ${GROUP}:${GROUP} /system

RUN chown ${GROUP}:${GROUP} /log


RUN chmod 775 /system

RUN chmod 775 /log


ENV JAVA_HOME /usr/java/jdk1.8.0_171-amd64/jre/


# build docker image

$ docker build -t test_image .


# Run container

$ docker run -d \

--name=test_container \

--cap-add=SYS_ADMIN \

-e "container=docker" \

-v /sys/fs/cgroup:/sys/fs/cgroup:ro \

--tmpfs /run \

--tmpfs /run/lock \

test_image \

/sbin/init


# Start bash in container

$ docker exec -it test_container /bin/bash