在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 簡化您的軟體部署流程。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP