Docker入门:从安装到实际应用

Docker入门指南:从安装到实际应用

Docker 是一个开源的平台,允许开发者通过容器技术来部署、管理和运行应用程序。容器是一种轻量级、独立的运行环境,可以包含应用程序及其所有依赖项,从而确保在不同环境下运行一致。本文将介绍 Docker 的基本概念、安装方法以及实际应用示例。

一、安装 Docker

在 Linux 上安装 Docker:

  1. 更新包索引并安装必要的软件包:

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

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  3. 添加 Docker 存储库:

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  4. 更新包索引并安装 Docker:

    sudo apt-get update
    sudo apt-get install docker-ce
    
  5. 启动并启用 Docker 服务:

    sudo systemctl start docker
    sudo systemctl enable docker
    

在 macOS 上安装 Docker:

  1. 下载并安装 Docker Desktop for Mac:

    访问 Docker 官网下载适用于 macOS 的 Docker Desktop 安装包,双击安装并按照提示完成安装。

  2. 启动 Docker Desktop 应用:

    在应用程序文件夹中找到 Docker 并启动,Docker 图标出现在菜单栏中,表示 Docker 已启动。

在 Windows 上安装 Docker:

  1. 下载并安装 Docker Desktop for Windows:

    访问 Docker 官网下载适用于 Windows 的 Docker Desktop 安装包,双击安装并按照提示完成安装。

  2. 启动 Docker Desktop 应用:

    在开始菜单中找到 Docker Desktop 并启动,Docker 图标出现在系统托盘中,表示 Docker 已启动。

二、Docker 基本概念
  • 镜像 (Image):镜像是一个只读的模板,包含运行应用程序所需的所有文件和配置。镜像可以用来创建容器。
  • 容器 (Container):容器是镜像的运行实例。它是一个轻量级、独立、可执行的软件包,包含运行应用程序所需的所有内容。
  • Dockerfile:Dockerfile 是一个文本文件,包含构建 Docker 镜像的指令。
三、创建和运行 Docker 容器
  1. 拉取官方镜像:

    使用 docker pull 命令从 Docker Hub 拉取官方镜像,例如拉取 Ubuntu 镜像:

    docker pull ubuntu
    
  2. 运行容器:

    使用 docker run 命令运行容器,例如运行一个交互式的 Ubuntu 容器:

    docker run -it ubuntu
    

    你将进入一个 Ubuntu 容器的终端,可以在其中执行命令。

  3. 列出正在运行的容器:

    使用 docker ps 命令查看当前正在运行的容器:

    docker ps
    
  4. 停止容器:

    使用 docker stop 命令停止正在运行的容器:

    docker stop <container_id>
    
  5. 删除容器:

    使用 docker rm 命令删除已停止的容器:

    docker rm <container_id>
    
四、使用 Dockerfile 构建自定义镜像
  1. 创建 Dockerfile:

    创建一个名为 Dockerfile 的文件,并添加以下内容:

    # 使用官方的 Node.js 镜像作为基础镜像
    FROM node:14
    
    # 设置工作目录
    WORKDIR /app
    
    # 复制 package.json 和 package-lock.json
    COPY package*.json ./
    
    # 安装项目依赖
    RUN npm install
    
    # 复制项目文件
    COPY . .
    
    # 暴露应用程序端口
    EXPOSE 8080
    
    # 运行应用程序
    CMD ["node", "app.js"]
    
  2. 构建镜像:

    使用 docker build 命令构建自定义镜像:

    docker build -t my-node-app .
    
  3. 运行容器:

    使用构建的镜像运行容器:

    docker run -p 8080:8080 my-node-app
    
五、实际应用示例:部署一个简单的 Web 应用

以下是如何使用 Docker 部署一个简单的 Node.js Web 应用的示例:

  1. 创建项目目录并初始化项目:

    mkdir my-node-app
    cd my-node-app
    npm init -y
    
  2. 安装 Express 框架:

    npm install express
    
  3. 创建应用程序文件 app.js

    const express = require('express');
    const app = express();
    const port = 8080;
    
    app.get('/', (req, res) => {
      res.send('Hello, Docker!');
    });
    
    app.listen(port, () => {
      console.log(`App running at http://localhost:${port}`);
    });
    
  4. 创建 Dockerfile(如前文所示)并构建镜像:

    docker build -t my-node-app .
    
  5. 运行容器:

    docker run -p 8080:8080 my-node-app
    
  6. 访问应用程序:

    打开浏览器并访问 http://localhost:8080,你将看到 “Hello, Docker!” 的消息。

总结

通过本文,你已经了解了 Docker 的基本概念、安装方法以及如何创建和运行容器。你还学习了如何使用 Dockerfile 构建自定义镜像,并通过实际示例了解了如何使用 Docker 部署一个简单的 Web 应用。希望这篇入门指南对你理解和使用 Docker 有所帮助。

相关推荐

  1. Docker入门安装实际应用

    2024-07-16 20:44:01       20 阅读
  2. Ansible 入门安装实际应用

    2024-07-16 20:44:01       19 阅读
  3. k8s入门安装实际应用

    2024-07-16 20:44:01       30 阅读
  4. Docker详细安装与使用教程:入门实践

    2024-07-16 20:44:01       31 阅读
  5. docker入门入土

    2024-07-16 20:44:01       53 阅读
  6. 《深度解析Docker命令:入门高级应用

    2024-07-16 20:44:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 20:44:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 20:44:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 20:44:01       58 阅读
  4. Python语言-面向对象

    2024-07-16 20:44:01       69 阅读

热门阅读

  1. MetaGPT和LangGraph对比

    2024-07-16 20:44:01       19 阅读
  2. Linux基础命令

    2024-07-16 20:44:01       20 阅读
  3. JUC-并发的概念

    2024-07-16 20:44:01       18 阅读
  4. 第五章 初识Sping框架(2023版本IDEA)

    2024-07-16 20:44:01       17 阅读
  5. TCP重传、滑动窗口、流量控制、拥塞控制机制

    2024-07-16 20:44:01       20 阅读
  6. elasticsearch中模板的创建和使用

    2024-07-16 20:44:01       20 阅读
  7. P8704 [蓝桥杯 2020 省 A1] 填空问题 题解

    2024-07-16 20:44:01       20 阅读
  8. Flask包算法服务

    2024-07-16 20:44:01       21 阅读