引言
Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可以快速交付软件开发生命周期的任何部分。本文将详细介绍如何在 Linux 系统下安装和配置 Docker,帮助您从入门到实战。
一、Docker 简介
1.1 什么是 Docker?
Docker 是一个开源的应用容器引擎,它可以将应用程序及其依赖项打包成一个可移植的容器。容器是一个轻量级的、可执行的沙盒,它包含了应用程序运行所需的所有环境。
1.2 Docker 的特点
- 轻量级:Docker 容器非常轻量级,几乎相当于一个无操作系统的虚拟机。
- 可移植性:容器可以在任何支持 Docker 的平台上运行,包括物理机、虚拟机和云平台。
- 一致性:容器确保了应用程序在不同的环境中具有一致的行为。
二、安装 Docker
2.1 确认系统环境
在安装 Docker 之前,请确保您的 Linux 系统满足以下要求:
- Linux 发行版(如 Ubuntu、CentOS、Fedora 等)
- 系统内核版本:3.10 或更高版本
2.2 安装 Docker
以下是在 Ubuntu 系统上安装 Docker 的步骤:
- 打开终端。
- 执行以下命令卸载旧的 Docker 版本(如果已安装):
sudo apt-get remove docker docker-engine docker.io containerd runc
- 更新 apt 包索引:
sudo apt-get update
- 安装用于 Docker 的包:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
- 添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 设置 Docker 仓库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- 再次更新 apt 包索引:
sudo apt-get update
- 安装 Docker:
sudo apt-get install docker-ce
- 验证 Docker 是否安装成功:
sudo docker --version
三、配置 Docker
3.1 配置 Docker 镜像加速
由于 Docker 官方镜像仓库在国内访问速度较慢,我们可以通过配置镜像加速器来提高访问速度。
- 访问 ,获取您的 Docker 镜像加速地址。
- 编辑
/etc/docker/daemon.json
文件:
sudo nano /etc/docker/daemon.json
- 在文件中添加以下内容:
{
"registry-mirrors": ["您的 Docker 镜像加速地址"]
}
- 保存并退出编辑器。
- 重启 Docker 服务:
sudo systemctl restart docker
3.2 配置 Docker 用户权限
默认情况下,只有 root 用户和 docker 用户组中的用户可以运行 Docker 命令。为了方便使用,我们可以将当前用户添加到 docker 用户组。
- 添加当前用户到 docker 用户组:
sudo usermod -aG docker $USER
- 重启终端会话或运行以下命令使更改生效:
newgrp docker
四、实战演练
4.1 运行第一个 Docker 容器
以下是在 Ubuntu 系统上运行一个 Hello World 容器的步骤:
- 执行以下命令获取官方 Hello World 镜像:
sudo docker pull hello-world
- 运行 Hello World 容器:
sudo docker run hello-world
您将看到以下输出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker daemon forked a new container from an image with command `"/hello-world"`.
2. Stdin was not passed to the container.
3. The container executed the command `"/hello-world"` and exited with status 0.
这表示您已经成功运行了第一个 Docker