docker 安装和镜像拉取本地部署

sudo apt install -y docker-ce docker-ce-cli containerd.io

sudo systemctl start docker

sudo systemctl enable docker

sudo docker run hello-world

 

sudo systemctl status docker

 部署:

fullhan@vpc:~/work/rtt/00WebAI/node-sqlite-app$ docker build -t node-sqlite-app .

image

运行:

sudo docker run -d -p 3000:3000 --name node-sqlite-app-container node-sqlite-app image

 

image

 

测试成功

image

 

步骤一:在 Ubuntu 上安装 Docker Engine

这部分是整个流程的核心,详细步骤如下:

  1. 卸载旧版本
    为避免冲突,先移除系统可能自带的旧 Docker 相关包

    bash
    sudo apt remove docker docker-engine docker.io containerd runc
    # 如果有通过 snap 安装,也一并移除
    sudo snap remove docker 2>/dev/null || true
  2. 安装依赖工具
    安装 apt 通过 HTTPS 使用仓库所必需的软件包

    bash
    sudo apt update
    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg
  3. 添加 Docker 官方 GPG 密钥
    GPG 密钥用来验证下载软件包的合法性

    bash
    # 创建存放密钥的目录(标准做法)
    sudo install -m 0755 -d /etc/apt/keyrings
    
    # 下载并安装 Docker 的官方 GPG 密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
  4. 添加 Docker APT 软件源
    将 Docker 官方仓库添加到系统的软件源列表中

    bash
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. 安装 Docker Engine
    更新软件包索引并安装 Docker 核心组件及插件

    bash
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  6. 启动并验证
    启动 Docker 服务,并将其设置为开机自启

    bash
    sudo systemctl start docker
    sudo systemctl enable docker

    通过运行一个测试容器来验证 Docker 是否安装成功,首次运行会自动下载镜像

    bash
    sudo docker run hello-world

    如果看到"Hello from Docker!"的欢迎信息,说明 Docker 已成功运行。

另一种安装方式:你也可以通过 Ubuntu 官方仓库安装,但这通常不是最新版。使用 sudo apt install docker.io 即可

步骤二:安装后的关键配置

  1. 配置用户权限(非必需但强烈推荐)
    默认执行 Docker 命令需要 sudo。将当前用户加入 docker 组,之后就可以不带 sudo 运行了

    bash
    sudo usermod -aG docker $USER

    注意:执行后,需要重新登录或重启服务器,权限更改才会生效

  2. 配置镜像加速器
    在国内访问 Docker Hub 可能会较慢,配置一个国内镜像源可以有效提升拉取速度

    bash
    # 创建或编辑配置文件
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com"
      ]
    }
    EOF
    
    # 重启 Docker 服务使配置生效
    sudo systemctl daemon-reload
    sudo systemctl restart docker

步骤三:部署第一个容器(以 Nginx 为例)

Docker 安装配置完成后,我们来部署一个 Nginx 服务,具体步骤如下:

  1. 拉取 Nginx 镜像:从 Docker Hub 拉取官方 Nginx 镜像。stable-alpine 版本体积小,很适合测试

    bash
    docker pull nginx:stable-alpine
  2. 运行 Nginx 容器:通过 docker run 命令启动容器。

    bash
    docker run -d --name my-nginx -p 80:80 nginx:stable-alpine

    这条命令的参数含义如下:

    • -d: 后台运行容器

    • --name my-nginx: 为容器命名为 my-nginx

    • -p 80:80: 将宿主机的 80 端口映射到容器的 80 端口

  3. 验证部署:通过 docker ps 查看容器是否运行,或在浏览器里访问服务器的 IP 地址,应该能看到 Nginx 的欢迎页

    bash
    docker ps
    curl http://localhost:80

步骤四:进阶部署 - 使用 Docker Compose

对于更复杂的应用,推荐使用 Docker Compose。它是一个多容器管理工具,可以用一个 docker-compose.yml 文件来定义和运行多个容器

以下是一个包含 Nginx 和 MySQL 的简单 docker-compose.yml 文件示例:

yaml
version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: example_password

使用 docker compose up -d 命令即可一键启动文件中定义的所有服务。

插件说明:新版 Docker 已自带 Compose 插件,使用 docker compose(中间有空格)即可,而不是旧版的 docker-compose

常见安装问题排查

posted @ 2026-05-16 21:04  七星望  阅读(26)  评论(0)    收藏  举报