[Docker] Alpine Linux (알파인 리눅스)
DevOps/Docker2022. 5. 11. 21:55[Docker] Alpine Linux (알파인 리눅스)

✔️ Alpine Linux Busybox + APK(패키지 관리자) 패키지 인덱스 apk update 패키지 검색 apk search 패키지 추가 apk add 패키지 제거 apk del 다음 세개의 python official image를 비교해보자 vagrant@docker  ~/image-build/myweb-ubuntu  docker pull python:3.9-buster vagrant@docker  ~/image-build/myweb-ubuntu  docker pull python:3.9-slim-buster vagrant@docker  ~/image-build/myweb-ubuntu  docker pull python:3.9-alpine vagrant@docker  ~/imag..

[Docker] Dockerfile 이미지 빌드와 Cache
DevOps/Docker2022. 5. 11. 21:32[Docker] Dockerfile 이미지 빌드와 Cache

✔️ Docker Cache ubuntu 이미지를 httpd 서비스 이미지로 만드는 Dockerfile이다. vagrant@docker  ~/image-build/myweb-ubuntu  cat Dockerfile FROM ubuntu:focal RUN apt update; DEBIAN_FORNTEND=noninteractive apt install tzdata RUN ln -sf /bin/share/zoneinfo/Asia/Seoul /etc/localtime RUN apt install -y apache2 COPY index.html /var/www/html/index.html EXPOSE 80/tcp CMD ["/usr/sbin/apache2ctl", "-DFOREGROUND"] FROM RUN..

[Docker] ubuntu 이미지로 httpd 서비스 이미지 만들기 ( + Timezone 세팅)
DevOps/Docker2022. 5. 11. 18:39[Docker] ubuntu 이미지로 httpd 서비스 이미지 만들기 ( + Timezone 세팅)

✔️ ubuntu 이미지로 httpd 이미지 만들기 ubuntu 이미지로 httpd 서비스가 동작하는 이미지를 만들기 위해서는 Timezone 설정이 필요하다. ls -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime Timezone 설정을 위해서는 해당 명령을 실행해야 하는데 파일이 없어서 실행할 수 없다. tzdata : /usr/share/zoneinfo 라고 하는 디렉토리와 하위 파일을 생성하는 패키지이다. apt update apt install tzdata apt update를 수행 후 apt install tzdata로 tzdata 패키지를 설치한다. tzdata를 설치할 때 대륙과 국가를 묻는 대화 형식의 설치창을 볼 수 있다. Current defau..

DevOps/Docker2022. 5. 11. 16:37[Docker] Shell(쉘) 변수

✔️ Shell(쉘) 변수 Shell에서 $ 표시는 모두 변수를 참조한다는 뜻이다. a.sh #!/bin/sh echo "\$MSG = $MSG" # MSG 변수를 출력 echo "\$@ = $@" echo "\$0 = $0" # 출력된다. echo "\$1 = $1" vagrant@docker  ~  ./a.sh abc xyz 123 456 789 111 $MSG = $@ = abc xyz 123 456 789 111 $0 = ./a.sh $1 = abc $2 = xyz $3 = 123 $0 - 명령어 $n(n = 1, 2, 3...) - 인자 $@ : 명령어를 제외하고 나머지 모든 인수 vagrant@docker  ~  MSG="hello world" vagrant@docker  ~  ./..

[Docker] Dockerfile로 이미지 빌드하기
DevOps/Docker2022. 5. 11. 02:11[Docker] Dockerfile로 이미지 빌드하기

✔️ Dockerfile로 이미지 빌드 Dockerfile reference docs.docker.com 현재 디렉토리에 도커 파일이 있어야 한다. 현재 디렉토리를 기준으로 하위 디렉토리의 내용까지 모두 이미지로 만들기 때문에 root에서 작업하지 않는다. 도커 파일 작성시 Instruction은 관습적으로 대문자로 작성한다. ✔️ Instruction ✔️ FROM Base Image FROM FROM [:] FROM [@] ✔️ RUN RUN - execute command, 이미지를 빌드하는 중에 실행할 명령어를 지정한다. Shell Form RUN yum install httpd → /bin/sh -c yum install httpd Exec Form RUN ["yum", "install", "h..

[Docker] 이미지 레이어(Layer)
DevOps/Docker2022. 5. 11. 00:42[Docker] 이미지 레이어(Layer)

✔️ 이미지 레이어 httpd:latest의 레이어를 확인해보자. vagrant@docker  ~  docker image inspect httpd --format '{{ .RootFS.Layers }}' [sha256:9c1b6dd6c1e6be9fdd2b1987783824670d3b0dd7ae8ad6f57dc3cea5739ac71e sha256:1d1a2486e901871ad1257512d588eebb30ae0605d8353abb6635e2d313b2187c sha256:ec02eb7f3cf4dd78bc518d3a8ccf57f57336ceacb9638303891787ff2ec2e96f sha256:67bb571b5bd2b65cbdf2c93c6f9dc8e89414055dd7444df617b234669..

image