Docker 是一个开源的应用容器引擎,能够将应用程序和其所有依赖打包到一个可移植的容器中,并且能够在任何支持 Docker 的 Linux 系统上运行。它通过将应用程序及其环境隔离在容器中,简化了软件的部署、管理与迁移。
Docker 安装
Docker 支持多种操作系统(包括 Linux、macOS、Windows)。这里以 Ubuntu 和 Windows 为例,介绍安装步骤。
在 Ubuntu 上安装 Docker
-
更新现有的软件包列表
sudo apt update -
安装必要的依赖包 这些依赖包允许 apt 通过 HTTPS 使用仓库:
sudo apt 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 的 APT 软件源 选择适合你的 Ubuntu 版本的 Docker 源(
$(lsb_release -cs)会自动返回你的 Ubuntu 版本,如 bionic, focal 等):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 服务并设置开机自启
sudo systemctl start docker sudo systemctl enable docker -
验证 Docker 安装 运行以下命令确认 Docker 是否正确安装:
sudo docker --version -
(可选)将当前用户添加到 Docker 组 如果不希望每次使用 Docker 时都需要加
sudo,可以将当前用户加入 Docker 组:sudo usermod -aG docker $USER然后重新登录,或者运行:
newgrp docker
在 CentOS 上安装 Docker
- 更新现有的包管理工具
首先,确保你已更新 CentOS 系统的软件包:
sudo yum update -y
- 安装 Docker 的依赖包
在 CentOS 上安装 Docker 之前,需要安装一些必要的依赖:
sudo yum install -y yum-utils
- 添加 Docker 官方的仓库
我们将添加 Docker 的官方仓库,以便能直接通过 yum 安装最新版本的 Docker。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装 Docker
添加了仓库之后,可以使用 yum 来安装 Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
docker-ce:Docker 社区版(Community Edition)。docker-ce-cli:Docker 的命令行工具。containerd.io:容器运行时。
- 启动并启用 Docker 服务
安装完成后,启动 Docker 服务并设置其在系统启动时自动启动:
sudo systemctl start docker
sudo systemctl enable docker
- 验证 Docker 安装
你可以通过以下命令检查 Docker 是否安装成功:
sudo docker --version
如果 Docker 安装成功,你会看到类似如下的输出:
Docker version 20.10.x, build xxxxxxx
- 运行 Docker
检查 Docker 是否正常运行,使用以下命令:
sudo systemctl status docker
如果看到输出显示 Docker 正在运行,就说明 Docker 已经成功启动。
- (可选)将当前用户添加到 Docker 组
为了避免每次使用 Docker 时都要输入 sudo,可以将当前用户添加到 Docker 组:
sudo usermod -aG docker $USER
然后退出当前会话并重新登录,或者运行以下命令使更改生效:
newgrp docker
- 测试 Docker 是否正常工作
你可以运行一个简单的 Docker 容器来验证是否正常工作:
docker run hello-world
如果一切正常,你应该看到类似以下的输出,表示 Docker 可以正常运行容器:
Hello from Docker!
This message shows that your installation appears to be working correctly.
- 更新 Docker
如果你已经安装了 Docker,并且需要更新到最新版本,可以使用以下命令:
sudo yum update docker-ce
在 Windows 上安装 Docker
-
下载 Docker Desktop for Windows 访问 Docker 官网下载 Docker Desktop for Windows 。
-
运行安装程序 双击下载的安装包并按提示进行安装。
-
启用 WSL 2(Windows Subsystem for Linux) Docker Desktop 依赖于 WSL 2(Windows Subsystem for Linux 2),在安装过程中,Docker 会自动检测并提示安装 WSL 2。你可以根据提示安装并启用 WSL 2。
-
启动 Docker Desktop 安装完成后,启动 Docker Desktop,Docker 会在后台运行。
-
验证 Docker 安装 打开 PowerShell 或命令提示符,运行以下命令:
docker --version
Docker 基本命令
-
查看 Docker 版本
docker --version -
查看当前 Docker 容器
docker ps -
查看所有容器(包括停止的)
docker ps -a -
拉取 Docker 镜像 拉取一个 Docker 镜像(例如
ubuntu):docker pull ubuntu -
运行 Docker 容器 基于某个镜像运行一个容器:
docker run -it ubuntu /bin/bash-it是为了交互模式启动容器,ubuntu是镜像名称,/bin/bash是启动容器后的命令。 -
查看容器日志
docker logs <container_id> -
停止 Docker 容器
docker stop <container_id> -
启动停止的容器
docker start <container_id> -
删除 Docker 容器 停止容器后,可以删除容器:
docker rm <container_id> -
删除 Docker 镜像 删除镜像:
docker rmi <image_id> -
查看 Docker 镜像
docker images -
构建 Docker 镜像 使用 Dockerfile 构建一个新的镜像:
docker build -t my_image . -
查看 Docker 网络
docker network ls
Docker 容器与镜像概念
- 镜像(Image):Docker 镜像是一个包含操作系统和应用程序的打包文件。它是容器的模板,类似于虚拟机的快照。
- 容器(Container):容器是镜像的一个实例,可以理解为一个轻量级、隔离的运行时环境。容器包含了运行某个程序所需的所有依赖、库文件等。
常见应用场景
- 开发环境隔离:使用 Docker 可以为不同的项目创建独立的开发环境,避免环境冲突。
- CI/CD 自动化:在持续集成和持续交付(CI/CD)过程中,Docker 被广泛用于创建一致的构建、测试和生产环境。
- 微服务架构:通过 Docker,可以将每个微服务运行在独立的容器中,方便管理和部署。
总结
Docker 的优势在于它能够通过容器化技术简化应用的部署、管理和迁移,不依赖于操作系统的差异。通过 Docker,开发者可以轻松地将应用及其所有依赖打包到容器中,确保在任何环境下都能够一致地运行。