🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

🔧 1 准备与安装

🖼️ 2 获取服务镜像

🚀 3 运行服务容器

示例1:运行 Nginx Web 服务器​

示例2:运行 MySQL 数据库​

🔍 4 管理运行中的容器

🚀 5 使用 Docker Compose 编排多服务应用

💎 总结


通过 Docker 容器化技术来搭建基本服务,能为你带来环境标准化、快速部署、资源隔离和易于维护等诸多好处。下面这张图清晰地展示了 Docker 部署基本服务的完整工作流程,帮助你快速建立整体认知:

flowchart TD
    A[准备阶段: 安装Docker环境] --> B[获取镜像: 拉取或构建镜像]
    B --> C[运行容器: 配置参数并启动]
    C --> D[运维管理: 日常维护与监控]
    D --> E[进阶部署: 使用Docker Compose]
    
    B --> B1[“方式一: 拉取官方镜像<br>如 nginx, mysql”]
    B --> B2[“方式二: 编写Dockerfile<br>自定义镜像”]
    
    C --> C1[“单服务容器<br>示例: Nginx Web服务器”]
    C --> C2[“多服务容器<br>示例: MySQL数据库”]
    
    E --> E1[“编写docker-compose.yml<br>定义多服务应用栈”]

接下来,我们详细探讨每个环节的具体操作。

🔧 1 准备与安装

首先,你需要在目标系统上安装 Docker 引擎。

  • 在 Linux 系统上(以 Ubuntu 为例)​ :

    # 更新软件包索引
    sudo apt-get update
    # 安装必要的证书和工具
    sudo apt-get install -y ca-certificates curl gnupg
    # 添加Docker官方GPG密钥
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    # 添加Docker软件仓库
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    # 安装Docker引擎
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
    # 启动Docker服务并设置开机自启
    sudo systemctl start docker
    sudo systemctl enable docker
  • 验证安装:安装完成后,可以通过运行 sudo docker --versionsudo docker run hello-world来验证 Docker 是否安装成功 。

🖼️ 2 获取服务镜像

有两种主要方式为服务获取 Docker 镜像。

  • 从 Docker Hub 拉取官方镜像​ :

    这是最快捷的方式,Docker Hub 存储了大量官方和社区维护的镜像。

    # 拉取 Nginx 镜像
    docker pull nginx
    # 拉取 MySQL 镜像(指定版本)
    docker pull mysql:8.0
    # 拉取 Redis 镜像
    docker pull redis
  • 编写 Dockerfile 构建自定义镜像​ :

    当需要高度定制化你的服务时,推荐使用 Dockerfile。例如,为一个简单的 Python Flask 应用创建镜像 :

    # Dockerfile
    FROM python:3.9-slim  # 使用官方Python基础镜像
    WORKDIR /app          # 设置容器内的工作目录
    COPY requirements.txt .  # 将依赖文件复制到容器
    RUN pip install --no-cache-dir -r requirements.txt  # 安装依赖
    COPY . .              # 复制应用代码
    EXPOSE 5000           # 声明容器运行时监听的端口
    CMD ["python", "app.py"]  # 指定容器启动后运行的命令

    然后使用 docker build -t my-flask-app .命令构建镜像 。

🚀 3 运行服务容器

掌握了镜像获取,下一步就是让服务运行起来。

示例1:运行 Nginx Web 服务器
docker run -d --name my-nginx -p 8080:80 nginx
  • -d: 让容器在后台运行。

  • --name my-nginx: 为容器指定一个名称,便于管理。

  • -p 8080:80: 将主机的 8080 端口映射到容器的 80 端口。之后可通过 http://localhost:8080访问 Nginx 默认页。

  • nginx: 指定要运行的镜像。

示例2:运行 MySQL 数据库
docker run -d --name mysql-db \
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \
  -e MYSQL_DATABASE=myapp \
  -v mysql_data:/var/lib/mysql \
  -p 3306:3306 \
  mysql:8.0
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw: 设置环境变量,这里是 MySQL 的 root 用户密码。

  • -v mysql_data:/var/lib/mysql: 创建名为 mysql_data的卷,并将它挂载到容器的 /var/lib/mysql目录,实现数据持久化。

  • -p 3306:3306: 将主机的 3306 端口映射到容器的 3306 端口,允许外部连接。

🔍 4 管理运行中的容器

掌握基本的管理命令对于维护容器化服务至关重要。

操作

命令

说明

查看运行中容器

docker ps

查看正在运行的容器

查看所有容器

docker ps -a

查看所有容器(包括已停止的)

停止容器

docker stop <container_name>

停止指定容器

启动容器

docker start <container_name>

启动已停止的容器

进入容器

docker exec -it <container_name> /bin/bash

交互式进入容器内部

查看容器日志

docker logs <container_name>

查看容器的输出日志

删除容器

docker rm <container_name>

删除已停止的容器

🚀 5 使用 Docker Compose 编排多服务应用

当应用包含多个服务(如 Web 前端、后端 API、数据库)时,使用 Docker Compose 可以通过一个 YAML 文件定义和运行所有服务,极大简化了管理 。

# docker-compose.yml
version: '3.8'
services:
  web:
    image: nginx  # 使用Nginx镜像
    ports:
      - "80:80"   # 端口映射
    networks:
      - mynetwork  # 加入自定义网络

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw  # 设置数据库密码
    volumes:
      - db_data:/var/lib/mysql  # 数据卷持久化
    networks:
      - mynetwork

  redis:
    image: redis:alpine
    networks:
      - mynetwork

volumes:
  db_data:  # 定义数据卷

networks:
  mynetwork:  # 定义网络,方便服务间通信

在包含 docker-compose.yml文件的目录下,运行 docker-compose up -d即可启动所有定义的服务 。

💎 总结

通过这些步骤,你已经掌握了使用 Docker 搭建和管理基本服务的核心流程。从简单的单容器 Web 服务器到由 Docker Compose 编排的复杂多服务应用,Docker 都能提供一致且高效的环境管理。

希望这份指南能帮助你顺利上手 Docker!如果你在实践特定服务时遇到具体问题,我们可以继续深入探讨。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

更多推荐