如何在 Linux 上構建自己的 Docker 鏡像

您是否曾經想過構建自己的Docker鏡像?事實證明,使用“Dockerfile”就可以。在本指南中,我們將介紹如何構建您自己的 Docker 映像。

如何在 Linux 上安裝 Docker

在嘗試構建新映像之前,您需要在 Linux 服務器上安裝 Docker。值得慶幸的是,docker 很容易安裝在各種 Linux 操作系統上。在本指南中,我們將重點關注 Ubuntu、Debian、Arch Linux、Fedora 和OpenSUSE

要安裝 Docker,請打開一個終端。打開後,即可開始安裝。請按照下面列出的與您使用的 Linux 操作系統相匹配的安裝說明進行操作。

Ubuntu/Debian

您首先需要更新 Ubuntu/Debian 系統上的軟件索引。為此,請運行下面的apt update命令。

須藤apt更新

您現在必須安裝 HTTPS 傳輸包才能通過 HTTPS 進行安裝。您還需要安裝 Curl 和其他一些軟件包。可以使用apt install命令安裝這些軟件包。

sudo apt install apt-transport-https ca-certificatescurl software-properties-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 簽名者=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) 穩定”| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

啟用 Docker 存儲庫後,重新運行apt update命令來刷新軟件索引。

須藤apt更新

最後,您可以在 Ubuntu 或 Debian 上安裝您需要的 Docker 軟件包。

sudo apt install docker-ce docker-ce-cli containerd.io

架構Linux

如果您使用 Arch Linux,您只需運行pacman -S命令並安裝“docker”包即可讓 Docker 在您的系統上運行。

sudo pacman -S docker

在 Arch 系統上安裝 Docker 軟件包後,運行以下systemctl命令來啟用該軟件。

sudo systemctl 啟用 docker sudo systemctl 啟動 docker

軟呢帽

讓 Docker 在 Fedora 上運行相當簡單。首先,使用dnf install命令在系統上安裝該軟件。

須藤 dnf 安裝 docker

將軟件包安裝到 Fedora 系統上後,使用 systemd 啟用它。

sudo systemctl 啟用 docker sudo systemctl 啟動 docker

開放SUSE

要讓 Docker 在 OpenSUSE 上運行,您必須添加 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 安裝 docker-ce

最後,使用 systemd 在系統上啟用 Docker。

sudo systemctl 啟用 docker sudo systemctl 啟動 docker

如何選擇基礎鏡像

從 DockerHub 獲取的每個 Docker 映像都是使用基礎映像構建的。因此,您需要為 Docker 容器選擇一個基礎映像。在本指南中,我們將使用 Ubuntu,因為它是兼容性最好的 Linux 操作系統之一。

在本指南中,我們將向您展示如何使用 Ubuntu 22.04 構建 Drupal 10 映像的示例。但是,這些構建指令可以應用於您想要創建的任何內容,從 Web 應用程序到 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 是一個 Web 應用程序,因此我們需要將 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 作為示例。因此,我們必須為 Dockerfile 提供下載和解壓 Drupal 10 的方法。

在 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 是用於 Web 服務器的 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命令。例如,要在端口 80 上運行新建的 Drupal 10 Ubuntu 映像,請執行以下操作。

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


使用 Pano 改進 Gnome Shell 剪貼板

使用 Pano 改進 Gnome Shell 剪貼板

讓我們面對現實吧,默認的 Gnome Shell 剪貼板並不是很好。安裝 Pano 來改善您的剪貼板體驗!

如何在Linux上安裝DaVinci Resolve 17

如何在Linux上安裝DaVinci Resolve 17

您的 Linux 機器需要一個出色的非線性視頻編輯器嗎?使用本指南使用 Davinci Resolve 17!

如何使用壁紙下載器將壁紙下載到 Linux 桌面

如何使用壁紙下載器將壁紙下載到 Linux 桌面

Wallpaper Downloader 是一個靈活的 Linux 壁紙下載和管理器。它支持大多數Linux桌面環境,並且非常易於使用。本指南

如何在計算機上安裝 Tuxedo 操作系統

如何在計算機上安裝 Tuxedo 操作系統

想要通過 Tuxedo 計算機測試 Tuxedo 操作系統嗎?了解如何讓最新版本的 Tuxedo OS 在您的 PC 上運行。

如何在 Linux 上安裝 DEB 文件

如何在 Linux 上安裝 DEB 文件

什麼是 .DEB 文件?你用它做什麼?了解在 Linux PC 上安裝 DEB 文件的多種方法。

如何在 Linux 上玩消逝的光芒

如何在 Linux 上玩消逝的光芒

《消逝的光芒》是一款由 Techland 開發、華納兄弟互動娛樂發行的 2015 年生存恐怖視頻遊戲。遊戲的中心是

如何在計算機上安裝 Neptune Linux

如何在計算機上安裝 Neptune Linux

Neptune 使用 KDE Plasma 5 桌面環境,旨在提供優雅的操作系統。以下是如何在計算機上安裝 Neptune Linux。

嘗試 Ubuntu 的新基於 snap 的桌面

嘗試 Ubuntu 的新基於 snap 的桌面

想嘗試 Ubuntu 的新的基於 snap 包的桌面操作系統嗎?通過本指南了解如何將其部署在虛擬機上。

如何在 Linux 上玩《傳說之下》

如何在 Linux 上玩《傳說之下》

Undertale 是一款 2015 年 2D 獨立角色扮演遊戲,由遊戲開發商 Toby Fox 開發和發行。本指南將介紹在您的電腦上下載和安裝 Undertale

如何在 Linux 上玩《全面戰爭:三個王國》

如何在 Linux 上玩《全面戰爭:三個王國》

《全面戰爭:三個王國》是一款由 Creative Assembly 開發的回合製策略 RTS 遊戲。下面是如何在 Linux 上玩遊戲。