Docker - Ubuntu設定



Ubuntu是一個非常流行的作業系統,基於Linux,以其穩定性、安全措施和充滿熱情的龐大社群支援而聞名。Ubuntu擁有大量的應用程式,範圍從伺服器管理和桌面計算到嵌入式系統/物聯網。

Docker是一個開源平臺,用於將應用程式及其依賴項容器化到稱為容器的可管理單元中。這些容器保證一致的環境、可移植性、隔離性,並使部署和應用程式管理變得容易得多。

在本章中,讓我們學習將Ubuntu作業系統Docker化到容器中的各種方法。

Docker化Ubuntu的先決條件

在開始Docker化Ubuntu之前,請確保您具備以下先決條件。

  • 已安裝Docker − 如果尚未安裝,您可以從https://www.docker.com/下載並安裝適用於您的作業系統的Docker。
  • Ubuntu映象 − 我們將使用Docker映象來容器化Ubuntu。Docker Hub登錄檔(https://hub.docker.com/)上有大量的官方Ubuntu映象。

方法1:拉取Ubuntu映象並執行Ubuntu容器

讓我們瞭解如何拉取Ubuntu映象並執行Ubuntu容器−

拉取Docker映象

我們可以直接從Docker Hub登錄檔拉取預構建的Ubuntu映象。我們可以使用docker pull命令來拉取映象。

例如,我們可以使用以下命令來拉取最新的Ubuntu映象:

$ docker pull ubuntu:latest
Pulling the Docker Image 1

您可以透過列出本地機器上的所有Docker映象來驗證映象是否已成功拉取。

$ docker images
Pulling the Docker Image 2

執行Ubuntu容器

現在我們已經拉取了Ubuntu Docker映象,我們可以使用docker run命令使用此映象啟動一個容器。

我們可以使用諸如容器名稱(--name)、是否在後臺執行(-d)以及是否需要公開任何必要的埠(-p)之類的選項。

$ docker run -it --name my-ubuntu-container ubuntu:latest
Running the Ubuntu Container

訪問Ubuntu Shell

我們在命令中使用的-it標誌允許我們透過使其互動並附加終端來訪問容器的bash。這樣,我們可以直接訪問容器中的Ubuntu shell。

方法2:建立Dockerfile並構建自定義映象

讓我們瞭解如何建立Dockerfile並構建自定義映象−

建立Dockerfile

Dockerfile只是一個文字文件,其中包含用於構建自定義Docker映象的所有指令。它包含定義基礎映象、要安裝的軟體包和要執行的命令的指令。

建立一個名為Dockerfile的檔案,並將以下指令貼上到其中。

FROM ubuntu:latest

# Install packages (replace with your desired packages)

RUN apt-get update && apt-get install -y nginx

# Expose a port (if necessary)

EXPOSE 80

# Command to run when the container starts

CMD ["nginx", "-g", "daemon off;"]

構建Docker映象

接下來,導航到建立Dockerfile的目錄,開啟終端,並使用docker build命令根據Dockerfile建立映象。

$ docker build -t my-ubuntu-image .
Building the Docker Image 1

讓我們透過列出所有映象來驗證映象。

$ docker images
Building the Docker Image 2

執行容器

現在我們的映象已準備就緒,讓我們根據此映象建立一個容器。

$ docker run -itd --name my-ubuntu-container my-ubuntu-image

這將在分離(後臺)模式下啟動容器。

Running the Container Ubuntu 1

如果我們使用命令“docker container ls”列出所有容器,我們可以看到我們的容器正在執行。

讓我們使用以下命令將shell附加到此容器。

$ docker exec -it my-ubuntu-container /bin/bash
Running the Container Ubuntu 2

方法3:使用Docker Compose

Docker Compose是一個非常有用且廣泛使用的工具,您可以使用它來定義和執行多容器Docker應用程式。藉助它,您可以簡化管理多個容器的過程,這對於複雜的應用程式通常是必需的。

Docker Compose檔案

建立一個名為docker-compose.yml的檔案,並將以下內容貼上進去。

version: '3.8'

services:
   ubuntu1:
      image: ubuntu:latest
      command: /bin/bash
   ubuntu2:
      image: ubuntu:latest
      command: /bin/bash
   ubuntu3:
      image: ubuntu:latest
      command: /bin/bash

說明

  • version − '3.8':指定Docker Compose版本。
  • services − 定義要建立的服務(容器)。
  • ubuntu1, ubuntu2, ubuntu3 − 這些是各個容器的名稱。
  • image − ubuntu:latest:將每個容器的基礎映象設定為最新的Ubuntu映象。
  • command − bash:指定在容器內執行的命令。在本例中,它是一個Bash shell。

構建和執行

讓我們使用以下命令來構建映象並在後臺執行容器。

$ docker-compose up -d
Build Image and Run Container 1

讓我們列出所有正在執行的容器以進行驗證。

$ docker container ls -a
Build Image and Run Container 2

結論

透過Docker化Ubuntu,您可以為基於Ubuntu的應用程式建立隔離且可移植的環境。在本章中,我們瞭解了建立Ubuntu容器的不同方法,無論是使用Dockerfile、Docker Compose還是直接拉取預構建的映象。

Docker帶來了一個強大的工具集,用於管理和部署您的應用程式。您可以輕鬆地按照本教程中的步驟來Docker化您的Ubuntu應用程式,並利用容器化的優勢。

關於Docker化Ubuntu的常見問題

在本節中,我們收集了一組關於Docker化Ubuntu的常見問題及其答案。

1. 如何在Docker化的Ubuntu例項中安裝其他軟體包?

要在Ubuntu中安裝軟體包,我們可以使用容器內設定的apt包管理器。將相關的包安裝命令包含在您的Dockerfile中,或者從容器內以互動方式執行它們。確保這些包與您的基礎映象中使用的Ubuntu版本相容。

2. 如何為Docker化的Ubuntu例項配置網路?

我們可以使用Docker的網路功能或透過配置Ubuntu容器本身的網路來配置Ubuntu容器中的網路。您可以考慮使用網路別名、埠對映或連線到外部網路。

3. 如何在Docker化的Ubuntu例項中持久化資料?

您可以使用Docker捲來持久化Ubuntu容器中的資料。我們可以將卷掛載到容器內的目錄,這些目錄可以儲存在容器停止時要保留的資料。您還可以根據您的要求配置卷以確保資料永續性。

廣告
© . All rights reserved.