Docker安装及使用

318 阅读4分钟

Docker 是一个开源的应用容器引擎,能够将应用程序和其所有依赖打包到一个可移植的容器中,并且能够在任何支持 Docker 的 Linux 系统上运行。它通过将应用程序及其环境隔离在容器中,简化了软件的部署、管理与迁移。

Docker 安装

Docker 支持多种操作系统(包括 Linux、macOS、Windows)。这里以 UbuntuWindows 为例,介绍安装步骤。

在 Ubuntu 上安装 Docker

  1. 更新现有的软件包列表

    sudo apt update
    
  2. 安装必要的依赖包 这些依赖包允许 apt 通过 HTTPS 使用仓库:

    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
  3. 添加 Docker 官方的 GPG 密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  4. 添加 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"
    
  5. 再次更新软件包列表

    sudo apt update
    
  6. 安装 Docker

    sudo apt install docker-ce
    
  7. 启动 Docker 服务并设置开机自启

    sudo systemctl start docker
    sudo systemctl enable docker
    
  8. 验证 Docker 安装 运行以下命令确认 Docker 是否正确安装:

    sudo docker --version
    
  9. (可选)将当前用户添加到 Docker 组 如果不希望每次使用 Docker 时都需要加 sudo,可以将当前用户加入 Docker 组:

    sudo usermod -aG docker $USER
    

    然后重新登录,或者运行:

    newgrp docker
    

在 CentOS 上安装 Docker

  1. 更新现有的包管理工具

首先,确保你已更新 CentOS 系统的软件包:

sudo yum update -y
  1. 安装 Docker 的依赖包

在 CentOS 上安装 Docker 之前,需要安装一些必要的依赖:

sudo yum install -y yum-utils
  1. 添加 Docker 官方的仓库

我们将添加 Docker 的官方仓库,以便能直接通过 yum 安装最新版本的 Docker。

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装 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:容器运行时。
  1. 启动并启用 Docker 服务

安装完成后,启动 Docker 服务并设置其在系统启动时自动启动:

sudo systemctl start docker
sudo systemctl enable docker
  1. 验证 Docker 安装

你可以通过以下命令检查 Docker 是否安装成功:

sudo docker --version

如果 Docker 安装成功,你会看到类似如下的输出:

Docker version 20.10.x, build xxxxxxx
  1. 运行 Docker

检查 Docker 是否正常运行,使用以下命令:

sudo systemctl status docker

如果看到输出显示 Docker 正在运行,就说明 Docker 已经成功启动。

  1. (可选)将当前用户添加到 Docker 组

为了避免每次使用 Docker 时都要输入 sudo,可以将当前用户添加到 Docker 组:

sudo usermod -aG docker $USER

然后退出当前会话并重新登录,或者运行以下命令使更改生效:

newgrp docker
  1. 测试 Docker 是否正常工作

你可以运行一个简单的 Docker 容器来验证是否正常工作:

docker run hello-world

如果一切正常,你应该看到类似以下的输出,表示 Docker 可以正常运行容器:

Hello from Docker!
This message shows that your installation appears to be working correctly.
  1. 更新 Docker

如果你已经安装了 Docker,并且需要更新到最新版本,可以使用以下命令:

sudo yum update docker-ce

在 Windows 上安装 Docker

  1. 下载 Docker Desktop for Windows 访问 Docker 官网下载 Docker Desktop for Windows

  2. 运行安装程序 双击下载的安装包并按提示进行安装。

  3. 启用 WSL 2(Windows Subsystem for Linux) Docker Desktop 依赖于 WSL 2(Windows Subsystem for Linux 2),在安装过程中,Docker 会自动检测并提示安装 WSL 2。你可以根据提示安装并启用 WSL 2。

  4. 启动 Docker Desktop 安装完成后,启动 Docker Desktop,Docker 会在后台运行。

  5. 验证 Docker 安装 打开 PowerShell 或命令提示符,运行以下命令:

    docker --version
    

Docker 基本命令

  1. 查看 Docker 版本

    docker --version
    
  2. 查看当前 Docker 容器

    docker ps
    
  3. 查看所有容器(包括停止的)

    docker ps -a
    
  4. 拉取 Docker 镜像 拉取一个 Docker 镜像(例如 ubuntu):

    docker pull ubuntu
    
  5. 运行 Docker 容器 基于某个镜像运行一个容器:

    docker run -it ubuntu /bin/bash
    

    -it 是为了交互模式启动容器,ubuntu 是镜像名称,/bin/bash 是启动容器后的命令。

  6. 查看容器日志

    docker logs <container_id>
    
  7. 停止 Docker 容器

    docker stop <container_id>
    
  8. 启动停止的容器

    docker start <container_id>
    
  9. 删除 Docker 容器 停止容器后,可以删除容器:

    docker rm <container_id>
    
  10. 删除 Docker 镜像 删除镜像:

    docker rmi <image_id>
    
  11. 查看 Docker 镜像

    docker images
    
  12. 构建 Docker 镜像 使用 Dockerfile 构建一个新的镜像:

    docker build -t my_image .
    
  13. 查看 Docker 网络

    docker network ls
    

Docker 容器与镜像概念

  • 镜像(Image):Docker 镜像是一个包含操作系统和应用程序的打包文件。它是容器的模板,类似于虚拟机的快照。
  • 容器(Container):容器是镜像的一个实例,可以理解为一个轻量级、隔离的运行时环境。容器包含了运行某个程序所需的所有依赖、库文件等。

常见应用场景

  • 开发环境隔离:使用 Docker 可以为不同的项目创建独立的开发环境,避免环境冲突。
  • CI/CD 自动化:在持续集成和持续交付(CI/CD)过程中,Docker 被广泛用于创建一致的构建、测试和生产环境。
  • 微服务架构:通过 Docker,可以将每个微服务运行在独立的容器中,方便管理和部署。

总结

Docker 的优势在于它能够通过容器化技术简化应用的部署、管理和迁移,不依赖于操作系统的差异。通过 Docker,开发者可以轻松地将应用及其所有依赖打包到容器中,确保在任何环境下都能够一致地运行。