Notice
Recent Posts
Recent Comments
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

ITFragile

[Kubernetes] 03. Docker image build하기 본문

Project

[Kubernetes] 03. Docker image build하기

경요 2023. 3. 21. 13:54

web server 구성에 필요한 apache2, php, php-mysql 이 합쳐진 이미지를 Dockerfile로 작성하여 빌드하도록 한다.

먼저, 이미지 빌드를 위해 Docker 설치부터 진행한다.

 

1.  Docker 설치

sudo apt-get install ca-certificates curl gnupg lsb-release

 

2. gpg키 저장할 디렉토리 생성

$ sudo mkdir -p /etc/apt/keyrings

3. gpg 키 저장

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

 

4. 도커 설치할 repository 추가

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

5. repository 갱신한 정보 인식

$ sudo apt-get update

 

6. docker 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

 

7. 도커 그룹에 유저 등록하기

root 계정과 docker 그룹 계정만이 권한이 있으므로 docker 그룹 계정에 포함해준다.

# 현재 그룹
id
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lxd)

# 그룹에 추가
sudo usermod -aG docker user

# 다시 접속시
id
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lxd),998(docker)

 

8. 도커 image 확인

 

9. Dockerfile 작성

# Dockerfile
FROM ubuntu:20.04
# LABEL MAINTAINER DevOps

# Avoiding user interaction with tzdata
ENV DEBIAN_FRONTEND=noninteractive # 설치시 입력 요구하는 것을 방지

RUN apt-get update
RUN apt-get install -y apache2
RUN apt-get install -y php
RUN apt-get install -y php-mysql

EXPOSE 80/tcp

CMD ["apachectl", "-D", "FOREGROUND"] # 데몬으로 아파치 실행

 

10. 이미지 빌드

docker image build -t myweb:v1 .

 

11. 컨테이너 연결 테스트

docker container run -dit --name webserver -p 80:80 myweb:v1

 

12. 도커 허브 로그인

빌드한 이미지를 도커 허브에 저장해두고 싶어서 진행

docker login
Username: kyungyyyo
password :

 

13. 이미지 태그 연결

docker image tag myweb:v1 kyungyyyo/mywebphp:v1

 

14. 이미지 허브에 업로드

docker image push kyungyyyo/mywebphp:v1

도커 허브 접속해서 확인 가능

15. 이미지 다운

docker image pull kyungyyyo/mywebphp:v1