在CentOS和RHEL 8/7上安裝Docker並學習基本的容器操作


簡介

Docker 透過提供輕量級且高效的容器化平臺,徹底改變了軟體開發和部署的世界。藉助 Docker,開發人員可以將他們的應用程式及其依賴項打包到容器中,從而更輕鬆地在不同的環境中一致地部署和執行它們。在本文中,我們將指導您完成在 CentOS 和 RHEL 8/7 上安裝 Docker 的過程,並提供基本的容器操作示例。

在 CentOS/RHEL 8 上安裝 Docker

準備系統

在安裝 Docker 之前,請執行以下命令確保您的系統已更新:

$ sudo yum update
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

新增 Docker 倉庫

要安裝 Docker 包,您需要將 Docker 倉庫新增到您的系統。執行以下命令:

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安裝 Docker Engine

現在,使用以下命令安裝 Docker Engine:

$ sudo yum install -y docker-ce docker-ce-cli containerd.io

啟動 Docker 服務

啟動 Docker 服務並在系統啟動時啟用它:

$ sudo systemctl start docker
$ sudo systemctl enable docker

驗證 Docker 安裝

透過檢查版本來確認 Docker 已安裝並正在執行:

$ docker --version

基本的容器操作

執行您的第一個容器

讓我們從執行一個簡單的容器開始。執行以下命令來執行 Nginx Web 伺服器容器:

$ docker run -d -p 80:80 nginx

列出正在執行的容器

要檢視正在執行的容器列表,請使用以下命令:

$ docker ps

停止容器

使用其容器 ID 或名稱停止正在執行的容器:

$ docker stop <container_id or container_name>

刪除容器

要刪除已停止的容器,請使用以下命令:

$ docker rm <container_id or container_name>

拉取 Docker 映象

您可以使用 `docker pull` 命令從 Docker Hub 拉取映象。例如,要拉取 Ubuntu 20.04 映象,請使用:

$ docker pull ubuntu:20.04

執行互動式容器

要執行互動式容器並在其中獲得 shell 提示符,請使用以下命令:

$ docker run -it ubuntu:20.04 /bin/bash

複製檔案到/從容器

您可以使用 `docker cp` 命令在主機系統和容器之間複製檔案。例如,要將名為 file.txt 的檔案複製到容器,請執行:

$ docker cp file.txt <container_id>:<destination_path>

管理容器資源

Docker 提供了限制容器資源(如 CPU 和記憶體使用情況)的選項。例如,要將容器限制為僅使用 1 個 CPU 核心,請使用:

$ docker run --cpus=1 <image_name>

在 CentOS/RHEL 7 上安裝 Docker

啟用 Docker CE 倉庫

首先,透過執行以下命令啟用 Docker CE 倉庫:

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安裝 Docker

使用以下命令安裝 Docker:

$ sudo yum install -y docker-ce docker-ce-cli containerd.io

啟動 Docker 服務

啟動 Docker 服務並在系統啟動時啟用它:

$ sudo systemctl start docker
$ sudo systemctl enable docker

驗證 Docker 安裝

確認 Docker 已安裝並正在執行:

$ docker --version

Docker 示例和輸出

構建自定義 Docker 映象

Docker 允許您透過指定 Dockerfile 來建立自己的自定義映象。讓我們建立一個簡單的 Dockerfile,它構建一個包含自定義 HTML 檔案的映象:

建立一個名為 Dockerfile 的檔案,內容如下:

FROM nginx:latest
COPY index.html /usr/share/nginx/html/

在同一目錄中建立一個包含您所需內容的 index.html 檔案。

使用以下命令構建 Docker 映象:

$ docker build -t custom-nginx .

從自定義映象執行容器

現在我們已經構建了自定義 Docker 映象,讓我們基於它執行一個容器:

$ docker run -d -p 8080:80 custom-nginx

透過開啟瀏覽器並導航到 https://:8080 來訪問容器化的 Web 伺服器。您應該會看到自定義 HTML 檔案的內容。

檢查容器詳細資訊

要檢視有關正在執行的容器的詳細資訊(例如其 IP 地址、網路配置等),請使用以下命令:

$ docker inspect <container_id or container_name>

容器日誌

要檢查容器生成的日誌,請使用以下命令:

$ docker logs <container_id or container_name>

管理 Docker 映象

Docker 允許您高效地管理您的映象。以下是一些有用的命令:

列出系統上所有可用的映象:

$ docker images

刪除映象:

$ docker rmi <image_id or image_name>

拉取和推送映象到 Docker Hub:

$ docker pull <image_name>
$ docker push <image_name>

Docker 網路

理解 Docker 網路

Docker 提供各種網路選項來促進容器和主機系統之間的通訊。讓我們探索一些常見的網路概念:

  • 橋接網路 - Docker 預設情況下會建立一個橋接網路,允許容器使用內部 IP 地址相互通訊以及與主機通訊。

  • 主機網路 - 容器與主機共享網路名稱空間,使它們能夠直接使用主機的網路介面。

  • 覆蓋網路 - 用於在執行在不同 Docker 主機上的容器之間進行通訊,形成一個分散式網路。

建立橋接網路

要建立一個自定義橋接網路,請使用以下命令:

$ docker network create mynetwork

在自定義網路上執行容器

您可以在執行容器時指定網路,以將其連線到特定網路:

$ docker run -d --network=mynetwork --name container1 nginx
$ docker run -d --network=mynetwork --name container2 nginx

上述命令建立兩個容器(container1 和 container2)並將它們連線到 mynetwork 橋接網路。

檢查網路詳細資訊

要檢視有關 Docker 網路的資訊(例如已連線的容器和 IP 地址),請使用以下命令:

$ docker network inspect mynetwork

將容器連線到多個網路

容器可以連線到多個網路,允許在不同的網路之間進行通訊。使用以下命令將容器連線到其他網路:

$ docker network connect mynetwork2 <container_id or container_name>

公開容器埠

要將容器的埠公開到主機系統,請在執行容器時使用 `-p` 或 `--publish` 標誌:

$ docker run -d -p 8080:80 nginx

上述命令將容器的 80 埠公開到主機的 8080 埠。

連結容器

`--link` 選項允許容器使用專用 DNS 名稱安全地相互通訊。例如,要將 container1 連結到 container2,請使用以下命令:

$ docker run -d --link container2 --name container1 nginx

在這種情況下,container1 可以使用 DNS 名稱 container2 與 container2 通訊。

結論

在本文中,我們介紹了在 CentOS 和 RHEL 8/7 上安裝 Docker 的方法。我們逐步介紹了設定 Docker 的過程,包括倉庫配置、包安裝和服務管理。此外,我們還探討了基本的容器操作命令,例如執行、停止和刪除容器、拉取映象、與容器互動以及管理容器資源。有了這些知識,您現在可以開始探索廣闊的容器化世界,並利用 Docker 簡化您的軟體部署流程。

更新於:2023年7月17日

瀏覽量:194

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.