• Docker 安装使用操作指南


    Docker 是一种开源的容器化平台,它允许开发者将应用及其所有依赖项打包到一个轻量级的容器中,这样就可以在任何地方一致地运行它们。无论是开发环境、测试环境还是生产环境,Docker 都能够提供一致的环境,从而消除“在我的机器上能运行”的问题。本文将通过实际操作案例和示例代码,深入探讨 Docker 的实践与应用。

    1. Docker 安装

    1.1 安装 Docker

    在不同操作系统上,Docker 的安装方法有所不同。以下是 Ubuntu 和 Windows 上的 Docker 安装步骤。

    Ubuntu
    1. 更新现有的包列表:

      sudo apt-get update
      
    2. 安装 Docker:

      sudo apt-get install -y docker.io
      
    3. 启动 Docker 服务:

      1. sudo systemctl start docker
      2. sudo systemctl enable docker
    4. 验证安装:

      docker --version
      
    Windows
    1. 下载并安装 Docker Desktop。

    2. 按照安装向导进行设置,确保启用 WSL 2(Windows Subsystem for Linux)。

    3. 安装完成后,打开 PowerShell,并运行以下命令以确认 Docker 是否安装成功:

      docker --version
      

    2. 基本命令

    在安装成功后,我们可以测试 Docker 是否工作正常。以下是一些基本的 Docker 命令。

    2.1 运行第一个容器

    我们可以运行一个简单的容器,例如 Nginx:

    docker run -d -p 8080:80 nginx
    

    这个命令使用 Nginx 镜像在后台运行一个容器,并将本地主机的 8080 端口映射到容器的 80 端口。可以在浏览器中访问 http://localhost:8080,查看 Nginx 欢迎页面。

    2.2 查看运行中的容器

    要查看正在运行的容器,可以运行:

    docker ps
    

    2.3 停止和删除容器

    停止运行的容器:

    docker stop <container_id>
    

    删除容器:

    docker rm <container_id>
    

    3. Dockerfile 和构建自定义镜像

    有时我们需要构建自己的 Docker 镜像。可以通过 Dockerfile 来实现。

    3.1 创建 Dockerfile

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

    1. # 使用官方的 Node.js 镜像
    2. FROM node:14
    3. # 创建工作目录
    4. WORKDIR /usr/src/app
    5. # 复制 package.json 和 package-lock.json
    6. COPY package*.json ./
    7. # 安装依赖项
    8. RUN npm install
    9. # 复制项目文件
    10. COPY . .
    11. # 暴露应用端口
    12. EXPOSE 3000
    13. # 启动应用程序
    14. CMD ["node", "app.js"]

    3.2 构建镜像

    在包含 Dockerfile 的目录中运行以下命令以构建镜像:

    docker build -t my-node-app .
    

    3.3 运行自定义镜像

    创建完镜像后,可以使用以下命令来运行它:

    docker run -d -p 3000:3000 my-node-app
    

    4. 实际操作案例:构建一个简单的 Web 应用

    接下来,我们将构建一个简单的 Node.js Web 应用,并使用 Docker 来容器化它。

    4.1 创建 Node.js 应用

    创建一个项目目录 my-node-app,并在其中创建以下文件:

    1. package.json
    1. {
    2. "name": "my-node-app",
    3. "version": "1.0.0",
    4. "description": "A simple Node.js app",
    5. "main": "app.js",
    6. "scripts": {
    7. "start": "node app.js"
    8. },
    9. "dependencies": {
    10. "express": "^4.17.1"
    11. }
    12. }
    1. app.js
    1. const express = require('express');
    2. const app = express();
    3. const PORT = 3000;
    4. app.get('/', (req, res) => {
    5. res.send('Hello, Docker!');
    6. });
    7. app.listen(PORT, () => {
    8. console.log(`Server is running on http://localhost:${PORT}`);
    9. });

    4.2 初始化项目

    在项目目录中运行以下命令以安装依赖项:

    npm install
    

    4.3 创建 Dockerfile

    在 my-node-app 目录中创建 Dockerfile,内容如前述。

    4.4 构建镜像并运行

    构建镜像:

    docker build -t my-node-app .
    

    运行容器:

    docker run -d -p 3000:3000 my-node-app
    

    4.5 访问应用

    在浏览器中访问 http://localhost:3000,你应该能够看到“Hello, Docker!”的消息。

    5. 数据持久化与 Docker Volume

    在 Docker 中,数据持久化是一个重要概念。通过使用 Docker Volume,可以将数据存储在容器外部,防止数据丢失。

    5.1 创建 Volume

    创建一个 Volume:

    docker volume create my-volume
    

    5.2 在容器中使用 Volume

    在运行容器时,通过 -v 参数将 Volume 挂载到容器中。例如,如果我们希望将 /usr/src/app/data 目录映射到 Volume:

    docker run -d -p 3000:3000 -v my-volume:/usr/src/app/data my-node-app
    

    6. Docker Compose

    Docker Compose 是一个用于定义和运行多-container Docker 应用的工具。使用 Compose,可以使用 YAML 文件来配置应用服务。

    6.1 安装 Docker Compose

    在大多数情况下,Docker Desktop 默认已包含 Docker Compose。如果你使用的是 Linux,可以通过以下命令安装:

    sudo apt-get install docker-compose
    

    6.2 创建 docker-compose.yml 文件

    在 my-node-app 目录中,创建一个名为 docker-compose.yml 的文件,内容如下:

    1. version: '3'
    2. services:
    3. web:
    4. build: .
    5. ports:
    6. - "3000:3000"
    7. volumes:
    8. - my-volume:/usr/src/app/data
    9. volumes:
    10. my-volume:

    6.3 使用 Docker Compose 启动应用

    在项目目录中运行以下命令来启动应用:

    docker-compose up
    

    在浏览器中访问 http://localhost:3000,你应该能看到应用正常运行。

    7. 维护与管理 Docker 容器

    7.1 查看所有容器

    要查看所有容器,无论是运行中的还是停止的,可以使用:

    docker ps -a
    

    7.2 查看容器日志

    查看容器的输出日志:

    docker logs <container_id>
    

    7.3 进入容器

    以交互模式进入正在运行的容器:

    docker exec -it <container_id> /bin/bash
    

    8. 总结

    Docker 是一个强大的工具,通过容器化技术,为开发者提供了一种高效的应用部署方式。在本指南中,我们讨论了 Docker 的安装、基本命令、自定义镜像构建、数据持久化、Docker Compose 以及容器管理等方面的内容。

    通过实际案例的演示,相信你已经掌握了如何利用 Docker 来简化开发与部署流程。在实际项目中,能够灵活运用 Docker 的各种功能,将极大地提升你的工作效率与开发体验。

    如果你有任何问题或者想要深入探讨的话题,欢迎随时联系!

  • 相关阅读:
    R语言七天入门教程六:文件相关操作
    乌云遮住了天空
    c++&qt day3
    HBase 2.x ---- HBase快速入门
    useReducer的用法
    JWT简单介绍
    laravel日期字段carbon 输出格式转换
    Install pypoman on MACOS (M1)
    代码随想录day13(2)栈与队列:用队列实现栈(leetcode225)
    Anaconda prompt运行打开jupyter notebook 指令出错解决方案
  • 原文地址:https://blog.csdn.net/vvvae1234/article/details/143382395