프로그램/DOCKER

[Docker] 우분투(Ubuntu) DockerFile로 생성하기

프뚜 2022. 11. 15. 10:00
728x90
반응형
SMALL

안녕하세요!

프뚜(프로그래머 뚜)입니다!

 

dockerFile을 통해 image를 생성하고 생성된 이미지를 통해 container를 생성합니다.

Windows는 cmd(powershell), linux는 커널에서 생성 후 build합니다.

 

/sbin/init 및 systemctl을 사용하기 위해선 아래와 같은 DockerFile이 필요합니다.


[개발 환경]

 - OS: windows 10 64bit


DockerFile 생성하기
FROM ubuntu

ARG DEBIAN_FRONTEND=noninteractive

ENV TZ=Asia/Seoul

RUN sed -i 's/kr.archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list

RUN apt update \
  && apt install -qq -y init systemd \
  && apt install -qq -y build-essential \
  && apt install -qq -y tzdata \
  && apt install -qq -y vim curl \
  && apt install -qq -y sudo \
  && apt install -qq -y ufw \  
  && apt install -qq -y openjdk-8-jdk \
  && apt-get clean autoclean \
  && apt-get autoremove -y \
  && rm -rf /var/lib/{apt,dpkg,cache,log}

CMD ["/sbin/init"]

우분투 마지막 버전의 image(ubuntu:last)를 가져옵니다. 최소한의 필요한 라이브러리들을 설치 및 설정합니다.

파일명은 dockerFile로 저장합니다.

 

 


DockerFile Build 하기
# 2022.11.14[프뚜]: 이미지명과 dockerFile이 있는 경로를 지정
docker build -t [image명] -f [절대경로] .
ex) docker build -t pddu -f "C:\Program Files\Docker" .

 

 

정상적으로 image가 생성되었습니다.

 

 

dockerFile를 이용한 ssjeong 이미지가 생성되었습니다.


만들어진 image로 컨테이너 생성하기
# linux
docker run -d -it \
	-p 80:80 \
    -e LC_ALL=ko_KR.UTF-8 \
    --privileged \
    -v D:\WS\docker:/data \
    -u root \
    --name="test" \
    ssjeong /sbin/init

# windows
docker run -d -it -p 80:80 -e LC_ALL=ko_KR.UTF-8 --privileged -v D:\WS\docker:/data -u root --name="test" ssjeong /sbin/init

옵션에 대한 자세한 내용은 링크를 통해 확인하시면 됩니다.


728x90
반응형
LIST