Docker 是一個開源的容器化平臺,旨在簡化應用程序的部署、管理和擴展。它可以將應用及其所有依賴項打包成一個獨立的容器,確保應用在不同環(huán)境下運行一致。隨著容器化技術的廣泛應用,Docker 已成為開發(fā)者和運維工程師的必備工具之一。在這篇文章中,我們將詳細介紹如何在 Ubuntu 操作系統(tǒng)上安裝和使用 Docker。
一、安裝 Docker 前的準備工作
在開始安裝 Docker 之前,首先需要確保 Ubuntu 系統(tǒng)滿足 Docker 的最低要求。Docker 支持的 Ubuntu 版本包括 Ubuntu 18.04 LTS、20.04 LTS 及更新版本。請確保你的系統(tǒng)已更新,并且擁有足夠的磁盤空間來安裝 Docker 和相關的容器鏡像。
首先,更新系統(tǒng)的軟件包索引,確保你的操作系統(tǒng)擁有最新的軟件包信息:
sudo apt update
然后,升級現(xiàn)有的軟件包:
sudo apt upgrade -y
接下來,安裝 Docker 所需的依賴包,以確保系統(tǒng)能夠正確地從 Docker 倉庫中下載軟件包。
sudo apt install apt-transport-https ca-certificates curl software-properties-common
二、安裝 Docker 引擎
在準備工作完成后,我們可以開始正式安裝 Docker 引擎。Docker 提供了官方的安裝腳本,我們可以通過添加 Docker 的官方 APT 倉庫來安裝最新版本的 Docker。
首先,添加 Docker 的官方 GPG 密鑰:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
接著,添加 Docker 的 APT 軟件包倉庫:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
然后,更新軟件包索引:
sudo apt update
現(xiàn)在,安裝 Docker 引擎:
sudo apt install docker-ce
安裝完成后,Docker 服務應該已經(jīng)自動啟動。你可以通過以下命令檢查 Docker 服務是否正在運行:
sudo systemctl status docker
如果看到類似“active (running)”的狀態(tài),說明 Docker 已成功安裝并正在運行。
三、配置 Docker 用戶權限
默認情況下,Docker 需要 root 權限來運行命令。如果你不想每次都使用 sudo 命令,可以將當前用戶添加到 Docker 用戶組中。這樣,你就可以在不使用 sudo 的情況下運行 Docker 命令。
通過以下命令將當前用戶添加到 Docker 用戶組:
sudo usermod -aG docker $USER
添加用戶到 Docker 用戶組后,需要退出當前會話并重新登錄,或者可以使用以下命令使更改生效:
newgrp docker
完成后,你可以嘗試運行 Docker 命令,確認是否不再需要 sudo:
docker run hello-world
如果能夠成功運行命令并看到歡迎信息,說明 Docker 配置正確。
四、Docker 的基本使用
Docker 安裝完成后,接下來我們來學習如何使用 Docker 來管理容器和鏡像。
1. 拉取鏡像
Docker 使用鏡像來創(chuàng)建容器。在 Docker 中,鏡像是一個只讀的模板,容器則是鏡像的運行實例。你可以從 Docker Hub 拉取鏡像。以拉取 Ubuntu 鏡像為例:
docker pull ubuntu
這條命令將會從 Docker Hub 上拉取最新版本的 Ubuntu 鏡像。你可以通過以下命令查看已經(jīng)下載的鏡像:
docker images
2. 創(chuàng)建并運行容器
從鏡像中創(chuàng)建并啟動一個容器,使用以下命令:
docker run -it ubuntu
這條命令將會基于 Ubuntu 鏡像啟動一個容器,并進入該容器的交互式終端。你可以在其中執(zhí)行 Linux 命令。若要退出容器的交互式終端,可以使用 exit 命令。
3. 管理容器
查看正在運行的容器:
docker ps
查看所有容器(包括已停止的容器):
docker ps -a
停止容器:
docker stop <container_id>
啟動已停止的容器:
docker start <container_id>
刪除容器(刪除前需要停止容器):
docker rm <container_id>
五、Docker 鏡像管理
除了容器,Docker 的另一個重要組成部分是鏡像。鏡像是構建容器的基礎,它定義了容器的文件系統(tǒng)和所有依賴。Docker 提供了強大的命令來管理鏡像。
1. 查看鏡像
通過以下命令,你可以查看所有本地存儲的鏡像:
docker images
2. 刪除鏡像
刪除本地的鏡像可以使用以下命令:
docker rmi <image_id>
3. 構建自定義鏡像
如果你需要根據(jù)某些特定需求構建鏡像,可以使用 Dockerfile 文件。Dockerfile 是一個包含了一系列命令的文本文件,Docker 會根據(jù)這些命令自動構建鏡像。
以下是一個簡單的 Dockerfile 示例:
# 使用官方的 Node.js 鏡像作為基礎鏡像 FROM node:14 # 設置工作目錄 WORKDIR /usr/src/app # 復制應用代碼到容器 COPY . . # 安裝依賴 RUN npm install # 啟動應用 CMD ["node", "app.js"]
使用以下命令構建鏡像:
docker build -t my-node-app .
六、Docker Compose 管理多個容器
當需要在一個項目中運行多個容器時,Docker Compose 是一個非常有用的工具。它允許你通過一個配置文件(docker-compose.yml)來定義和運行多個 Docker 容器。
首先,安裝 Docker Compose:
sudo apt install docker-compose
接下來,創(chuàng)建一個 docker-compose.yml 文件來定義多個服務。例如,定義一個簡單的 web 應用和數(shù)據(jù)庫服務:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: postgres
environment:
POSTGRES_PASSWORD: example然后,使用以下命令啟動服務:
docker-compose up
通過 Docker Compose,你可以更加高效地管理多個容器。
七、Docker 的常用命令總結
總結一下 Docker 常用的命令,幫助你快速上手:
docker pull <image_name>:從 Docker Hub 拉取鏡像
docker run <options> <image_name>:運行容器
docker ps:列出正在運行的容器
docker ps -a:列出所有容器
docker stop <container_id>:停止容器
docker rm <container_id>:刪除容器
docker rmi <image_id>:刪除鏡像
docker-compose up:啟動所有 Compose 服務
docker-compose down:停止并刪除所有 Compose 服務
八、總結
Docker 是一個功能強大且靈活的容器化平臺,能夠大大簡化應用的部署和管理。通過本文的介紹,相信你已經(jīng)掌握了在 Ubuntu 上安裝 Docker 和使用 Docker 容器的基本方法。無論是開發(fā)、測試還是生產(chǎn)環(huán)境,Docker 都能夠提供一致的運行環(huán)境,幫助你提高開發(fā)效率和運維水平。
希望這篇文章對你有所幫助,祝你在 Docker 的學習和使用過程中取得成功!