Linux에서 고유한 Docker 이미지를 빌드하는 방법

나만의 Docker 이미지를 만들고 싶었던 적이 있습니까 ? 결과적으로 "Dockerfile"이라는 것을 사용하면 가능합니다. 이 가이드에서는 고유한 Docker 이미지를 빌드하는 방법에 대해 설명합니다.

리눅스에 도커를 설치하는 방법

새 이미지를 빌드하기 전에 Linux 서버에 Docker를 설치해야 합니다. 고맙게도 docker는 다양한 Linux 운영 체제에 쉽게 설치할 수 있습니다. 이 가이드에서는 Ubuntu, Debian , Arch Linux, Fedora 및 OpenSUSE 에 중점을 둘 것입니다 .

Docker를 설치하려면 터미널을 엽니다. 열리면 설치를 시작할 준비가 된 것입니다. 사용 중인 Linux 운영 체제와 일치하는 아래 설명된 설치 지침을 따르십시오.

우분투/데비안

먼저 Ubuntu/Debian 시스템에서 소프트웨어 인덱스를 업데이트해야 합니다. 그렇게 하려면 아래의 apt update 명령을 실행하십시오.

sudo 적절한 업데이트

이제 HTTPS를 통해 설치하려면 HTTPS 전송 패키지를 설치해야 합니다. Curl과 몇 가지 다른 패키지도 설치해야 합니다. 이러한 패키지는 apt install 명령 으로 설치할 수 있습니다 .

sudo apt install apt-transport-https ca-certificates curl 소프트웨어-속성-common

패키지가 설치되면 Ubuntu/Debian 시스템에서 Docker GPG 키를 활성화할 차례입니다. 이 키는 Ubuntu에 패키지를 안전하게 설치할 수 있도록 합니다.

컬 -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

GPG 키가 활성화되면 Docker 저장소를 활성화할 차례입니다. 이렇게 하려면 터미널에서 다음 echo 명령을 실행합니다.

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

Docker 리포지토리를 활성화한 경우 apt update 명령을 다시 실행하여 소프트웨어 인덱스를 새로 고칩니다.

sudo 적절한 업데이트

마지막으로 Ubuntu 또는 Debian에 필요한 Docker 패키지를 설치할 수 있습니다.

sudo apt 설치 docker-ce docker-ce-cli containerd.io

아치 리눅스

Arch Linux를 사용하는 경우 pacman -S 명령을 실행하고 "docker" 패키지를 설치하여 Docker가 시스템에서 작동하도록 할 수 있습니다.

sudo 팩맨 -S 도커

Arch 시스템에 Docker 패키지가 설치된 상태에서 다음 systemctl 명령을 실행하여 소프트웨어를 활성화합니다.

sudo systemctl 활성화 도커 sudo systemctl 시작 도커

페도라

Fedora에서 Docker를 작동시키는 것은 매우 간단합니다. 시작하려면 dnf install 명령을 사용하여 시스템에 소프트웨어를 설치하십시오.

sudo dnf 설치 도커

패키지가 Fedora 시스템에 설치되면 systemd로 활성화합니다.

sudo systemctl 활성화 도커 sudo systemctl 시작 도커

오픈수세

OpenSUSE에서 Docker를 작동시키려면 Docker 리포지토리를 추가해야 합니다.

sudo zypper addrepo https://download.docker.com/linux/opensuse/$(awk -F= '/^VERSION_ID/{print $2}' /etc/os-release)/x86_64/stable docker

그런 다음 Zypper를 새로 고치고 소프트웨어를 설치하십시오.

sudo zypper 새로 고침

sudo zypper 설치 도커-ce

마지막으로 systemd를 사용하여 시스템에서 Docker를 활성화합니다.

sudo systemctl 활성화 도커 sudo systemctl 시작 도커

기본 이미지를 선택하는 방법

DockerHub에서 가져온 모든 Docker 이미지는 기본 이미지로 빌드됩니다. 따라서 Docker 컨테이너의 기본 이미지를 선택해야 합니다. 이 가이드에서는 가장 호환되는 Linux OS 중 하나인 Ubuntu를 사용합니다.

이 가이드에서는 Ubuntu 22.04로 Drupal 10 이미지를 빌드하는 방법의 예를 보여줍니다. 그러나 이러한 빌드 지침은 웹 앱에서 Python 프로그램 등에 이르기까지 만들고자 하는 모든 것에 적용할 수 있습니다.

시작하려면 터미널에서 Nano 텍스트 편집기를 엽니다. Nano를 사용하여 자신만의 Dockerfile을 만들게 됩니다.

나노 -w ~/dockerfile

Nano 텍스트 편집기 내에서 다음 코드를 입력하여 Ubuntu를 사용하도록 지정합니다. Ubuntu 22.04를 얻으려면 지정하십시오. 다른 Ubuntu 릴리스를 사용하려면 여기에서 정보를 찾을 수 있습니다 .

# Use the official Ubuntu base image
FROM ubuntu:22.04

작업 디렉토리를 설정하는 방법

Docker 컨테이너에 작업 디렉터리를 설정해야 합니다. 작업 디렉터리는 애플리케이션이 컨테이너의 Ubuntu에 배포되는 위치입니다. 이 예에서는 Drupal 10으로 작업할 것입니다. Drupal은 웹 애플리케이션이므로 WORKDIR을 /var/www/html/로 설정해야 합니다 .

Nano 텍스트 편집기에서 Enter 키를 눌러 공백을 만듭니다. 그런 다음 다음 코드를 붙여넣습니다.

# Set the working directory in the container WORKDIR /var/www/html

프로그램 종속성을 설치하는 방법

Docker 이미지에 배포하는 애플리케이션은 해당 종속성을 충족해야 합니다. 올바른 종속성이 이미지에 설치되어 있지 않으면 작동하지 않습니다. Ubuntu 22.04를 기반으로 Drupal 10 이미지를 만들고 있으므로 모든 Drupal 10 종속성을 파일에 추가해야 합니다.

Nano 텍스트 편집기에서 Enter 키를 눌러 공백을 만듭니다. 그런 다음 다음 코드를 붙여넣습니다.

# Install dependencies RUN apt-get update && apt-get install -y \ apache2 \ php \ libapache2-mod-php \ php-curl \ php-gd \ php-intl \ php-mbstring \ php-mysql \ php-pgsql \ php-xml \ php-zip \ unzip

프로그램 코드를 복사하는 방법

프로세스의 다음 단계는 Docker 파일에 프로그램 코드를 제공하는 것입니다. 다시 한 번 Drupal 10을 예로 사용하고 있습니다. 따라서 Drupal 10을 다운로드하고 추출할 수 있는 수단을 Dockerfile에 제공해야 합니다.

Nano 텍스트 편집기에서 Enter 키를 눌러 새 줄을 만듭니다. 그런 다음 Dockerfile이 Drupal 10을 다운로드할 수 있도록 다음 코드를 추가합니다.

# Download and install Drupal RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \ tar -xvf drupal-10.2.tar.gz && \ mv drupal-10.2 .

포트 노출 방법

Docker 컨테이너를 배포할 때마다 포트에 액세스합니다. 예를 들어 기본 Syncthing 컨테이너를 실행하면 포트 8384가 노출됩니다. Nextcloud? 포트 8080 및 80. 컨테이너가 올바르게 작동하려면 올바른 포트를 노출해야 합니다.

먼저 배포하려는 프로그램이 액세스해야 하는 포트를 파악합니다. 이 예에서는 Drupal 10을 배포합니다. Drupal 10은 웹 서버용 CMS 시스템이므로 포트 80이 필요합니다. 따라서 Nano 텍스트 파일에서는 포트 80을 노출합니다.

# Expose the Drupal port EXPOSE 80

기본 명령을 설정하는 방법

이미지가 빌드되고 배포될 때 프로그램 실행이 자동으로 시작되도록 Dockerfile에서 기본 명령을 설정해야 합니다. 이 예제에서는 컨테이너가 배포되면 Drupal 10이 즉시 시작되도록 하므로 Dockerfile에 시작 명령을 추가해야 합니다.

Nano 텍스트 편집기에서 Enter 키를 눌러 파일에 새 공간을 만듭니다. 그런 다음 다음 코드를 붙여넣습니다.

# Start Apache in the foreground CMD ["apache2ctl", "-D", "FOREGROUND"]

이 마지막 코드를 파일에 추가했으면 Ctrl + O를 눌러 저장하고 Ctrl + X를 눌러 Nano 텍스트 편집기를 종료합니다 . Dockerfile은 아래 코드와 같아야 합니다.

참고: 이것은 Dockerfile의 예입니다. Drupal 예제를 참조로 사용하여 원하는 응용 프로그램에 대해 직접 만들 수 있습니다.

FROM ubuntu:22.04

# Set the working directory
WORKDIR /var/www/html

# Install dependencies
RUN apt-get update && apt-get install -y \
apache2 \
php \
libapache2-mod-php \
php-curl \
php-gd \
php-intl \
php-mbstring \
php-mysql \
php-pgsql \
php-xml \
php-zip \
unzip


# Download and install Drupal
RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \
tar -xvf drupal-10.2.tar.gz && \
mv drupal-10.2 .


# Expose the Drupal port
EXPOSE 80

# Start Apache in the foreground
CMD ["apache2ctl", "-D", "FOREGROUND"]

이미지를 구축하는 방법

생성한 Dockerfile로 새 Docker 이미지를 빌드하려면 다음 docker build 명령을 입력합니다.

sudo docker build -t my-docker-image .

위의 명령은 Docker 이미지를 빌드합니다.

이미지를 배포하는 방법

컨테이너에 새 이미지를 배포하려면 docker run 명령을 사용해야 합니다 . 예를 들어 새로 빌드된 Drupal 10 Ubuntu 이미지를 포트 80에서 실행하려면 다음을 수행합니다.

sudo docker run -d --name my-drupal-container -p 80:80 my-docker-image

댓글 남기기

Pardus Linux에서 Intel 그래픽 카드의 화면 찢김 현상 해결하기: 결과 중심 가이드

Pardus Linux에서 Intel 그래픽 카드의 화면 찢김 현상 해결하기: 결과 중심 가이드

Pardus Linux에서 Intel 그래픽 카드 화면 찢김 현상을 해결하려면 X11과 Wayland의 차이점, 컴포지터 설정, 새로 고침 빈도, 활성화된 Xorg 드라이버, 그리고 필요한 경우에만 TearFree를 확인하세요.

firewall-cmd를 사용하여 SLES 15 방화벽을 구성하는 방법

firewall-cmd를 사용하여 SLES 15 방화벽을 구성하는 방법

SLES 15에서 firewalld를 구성합니다. 영역을 확인하고, 서비스 또는 포트를 허용하고, 영구 규칙을 저장하고, 안전하게 재부팅하고, 액세스를 확인합니다.

SLES 라이브 패칭 구성 가이드: 재부팅 없이 커널 업데이트 적용하기

SLES 라이브 패칭 구성 가이드: 재부팅 없이 커널 업데이트 적용하기

SLES 15 SP7에서 커널 라이브 패치를 활성화하고, 재부팅 없이 지원되는 수정 사항을 적용하고, 활성 패치를 확인하고, 커널 재시작이 여전히 필요한 경우를 파악합니다.

SUSE Linux Enterprise Server 15에서 FIPS 모드를 활성화하는 방법

SUSE Linux Enterprise Server 15에서 FIPS 모드를 활성화하는 방법

SUSE에서 지원하는 설정 유틸리티를 사용하여 SLES 15에서 FIPS 모드를 활성화하고, 안전하게 재부팅한 다음, 커널 및 암호화 정책 상태를 확인하고 인증 제한 사항을 점검하십시오.

보안 정책을 위반하지 않고 Gooroom OS에 Google Chrome을 설치하는 방법

보안 정책을 위반하지 않고 Gooroom OS에 Google Chrome을 설치하는 방법

공식 .deb 패키지, APT, 정책 검사, 업데이트 안내 및 관리 기기용 수정 사항을 통해 Gooroom OS에 Google Chrome을 안전하게 설치하세요.

How to Export SLES System Logs to a Remote Syslog Server Securely

How to Export SLES System Logs to a Remote Syslog Server Securely

Securely forward SLES system logs to a remote syslog server with rsyslog, TLS certificates, peer-name verification, queues, validation, and testing.

SLES 15와 SSSD의 Active Directory 통합: 단계별 가이드

SLES 15와 SSSD의 Active Directory 통합: 단계별 가이드

YaST를 사용하여 SSSD를 통해 SLES 15를 Active Directory에 연결합니다. DNS 및 시간 설정을 준비하고, 도메인 로그인을 구성하고, Kerberos를 확인하고, SSSD, Winbind 및 realmd를 비교합니다.

Pardus Linux에서 Realtek RTL8821CE Wi-Fi 드라이버 문제 해결하기

Pardus Linux에서 Realtek RTL8821CE Wi-Fi 드라이버 문제 해결하기

Pardus Linux에서 RTL8821CE Wi-Fi 문제를 해결하려면 내장 rtw88 드라이버, Realtek 펌웨어, rfkill, NetworkManager 및 안전 대체 옵션을 확인하십시오.

Fix "Temporary Failure Resolving DNS" in Debian 12 with systemd-resolved

Fix "Temporary Failure Resolving DNS" in Debian 12 with systemd-resolved

Diagnose and fix Debian 12 DNS resolution failures with systemd-resolved, including resolv.conf, NetworkManager, networkd, cache, and verification.

Pardus Linux와 Windows 11을 안전하게 듀얼 부팅하는 방법

Pardus Linux와 Windows 11을 안전하게 듀얼 부팅하는 방법

Pardus 25.2를 Windows 11과 함께 설치하려면 Windows 볼륨을 백업하고 축소한 다음 UEFI USB로 부팅하고 기존 EFI 및 복구 파티션을 보호하십시오.