Docker 是一个开源的容器化平台,旨在简化应用程序的部署、管理和扩展。它可以将应用及其所有依赖项打包成一个独立的容器,确保应用在不同环境下运行一致。随着容器化技术的广泛应用,Docker 已成为开发者和运维工程师的必备工具之一。在这篇文章中,我们将详细介绍如何在 Ubuntu 操作系统上安装和使用 Docker。
一、安装 Docker 前的准备工作
在开始安装 Docker 之前,首先需要确保 Ubuntu 系统满足 Docker 的最低要求。Docker 支持的 Ubuntu 版本包括 Ubuntu 18.04 LTS、20.04 LTS 及更新版本。请确保你的系统已更新,并且拥有足够的磁盘空间来安装 Docker 和相关的容器镜像。
首先,更新系统的软件包索引,确保你的操作系统拥有最新的软件包信息:
sudo apt update
然后,升级现有的软件包:
sudo apt upgrade -y
接下来,安装 Docker 所需的依赖包,以确保系统能够正确地从 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
现在,安装 Docker 引擎:
sudo apt install docker-ce
安装完成后,Docker 服务应该已经自动启动。你可以通过以下命令检查 Docker 服务是否正在运行:
sudo systemctl status docker
如果看到类似“active (running)”的状态,说明 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 使用镜像来创建容器。在 Docker 中,镜像是一个只读的模板,容器则是镜像的运行实例。你可以从 Docker Hub 拉取镜像。以拉取 Ubuntu 镜像为例:
docker pull ubuntu
这条命令将会从 Docker Hub 上拉取最新版本的 Ubuntu 镜像。你可以通过以下命令查看已经下载的镜像:
docker images
2. 创建并运行容器
从镜像中创建并启动一个容器,使用以下命令:
docker run -it ubuntu
这条命令将会基于 Ubuntu 镜像启动一个容器,并进入该容器的交互式终端。你可以在其中执行 Linux 命令。若要退出容器的交互式终端,可以使用 exit 命令。
3. 管理容器
查看正在运行的容器:
docker ps
查看所有容器(包括已停止的容器):
docker ps -a
停止容器:
docker stop <container_id>
启动已停止的容器:
docker start <container_id>
删除容器(删除前需要停止容器):
docker rm <container_id>
五、Docker 镜像管理
除了容器,Docker 的另一个重要组成部分是镜像。镜像是构建容器的基础,它定义了容器的文件系统和所有依赖。Docker 提供了强大的命令来管理镜像。
1. 查看镜像
通过以下命令,你可以查看所有本地存储的镜像:
docker images
2. 删除镜像
删除本地的镜像可以使用以下命令:
docker rmi <image_id>
3. 构建自定义镜像
如果你需要根据某些特定需求构建镜像,可以使用 Dockerfile 文件。Dockerfile 是一个包含了一系列命令的文本文件,Docker 会根据这些命令自动构建镜像。
以下是一个简单的 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
接下来,创建一个 docker-compose.yml 文件来定义多个服务。例如,定义一个简单的 web 应用和数据库服务:
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 是一个功能强大且灵活的容器化平台,能够大大简化应用的部署和管理。通过本文的介绍,相信你已经掌握了在 Ubuntu 上安装 Docker 和使用 Docker 容器的基本方法。无论是开发、测试还是生产环境,Docker 都能够提供一致的运行环境,帮助你提高开发效率和运维水平。
希望这篇文章对你有所帮助,祝你在 Docker 的学习和使用过程中取得成功!
