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


Ubuntu 서버에 GitLab을 설치하는 방법

Ubuntu 서버에 GitLab을 설치하는 방법

Ubuntu 서버에서 작동하는 GitLab을 찾고 계십니까? GitLab은 GitHub와 같은 서비스에 대한 강력한 자체 호스팅 가능한 대안입니다. 그것으로 당신은 할 수 있습니다

SELinux로 Ubuntu Linux 서버 보호

SELinux로 Ubuntu Linux 서버 보호

SELinux를 설치하고 활성화하여 Ubuntu Linux 서버에 추가 보안을 추가하는 방법을 알아보십시오.

Cockpit을 ​​사용하여 Linux 서버에서 NFS 구성

Cockpit을 ​​사용하여 Linux 서버에서 NFS 구성

Linux 서버에 NFS 공유를 마운트하는 더 쉬운 방법이 필요하십니까? Cockpit 앱으로 NFS 공유를 마운트하는 방법을 알아보세요.

Ubuntu 22.04 LTS로 업그레이드하는 방법

Ubuntu 22.04 LTS로 업그레이드하는 방법

Ubuntu 22.04 장기 지원이 시작되었습니다! 데스크탑 또는 랩탑을 최신 Ubuntu 릴리스로 업그레이드하는 방법을 알아보세요.

Linux에서 최신 Nvidia GPU 드라이버를 설치하는 방법

Linux에서 최신 Nvidia GPU 드라이버를 설치하는 방법

Linux에 최신 Nvidia GPU 드라이버를 설치하는 방법

Docker 컨테이너로 파일을 전송하는 방법

Docker 컨테이너로 파일을 전송하는 방법

파일을 Docker 컨테이너로 전송해야 합니까? Docker cp 도구를 사용하면 컨테이너 간에 파일을 쉽게 이동할 수 있습니다.

Linux에 DEB 파일을 설치하는 방법

Linux에 DEB 파일을 설치하는 방법

.DEB 파일이란? 그것으로 무엇을 합니까? Linux PC에 DEB 파일을 설치할 수 있는 다양한 방법을 알아보세요.

Linux에서 GOG Galaxy를 작동시키는 방법

Linux에서 GOG Galaxy를 작동시키는 방법

GOG.com에서 게임을 소유하고 계신가요? 일부 비디오 게임을 즐기기 위해 Linux PC에 GOG Galaxy 클라이언트를 설정하고 싶으신가요? 우리가 보여주는 대로 이 가이드를 따르십시오.

CentOS에 Docker 엔진을 설치하는 방법

CentOS에 Docker 엔진을 설치하는 방법

Docker 엔진은 Linux 및 기타 플랫폼을 위한 개방형 컨테이너화 프로그램입니다. Docker 엔진은 다음과 유사하게 작동하는 독립형 컨테이너를 관리합니다.

Ferdi로 모든 채팅을 하나로 통합하는 방법

Ferdi로 모든 채팅을 하나로 통합하는 방법

Linux 시스템에 Slack, Discord 및 기타 여러 생산성 도구를 설치하는 데 지치셨습니까? 그것들이 하나로 결합될 수 있기를 바라는가?