HoRain云--Docker快速部署:从入门到实战

🎬 HoRain 云小助手:个人主页
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
目录

通过 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 --version和sudo 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 管理运行中的容器
掌握基本的管理命令对于维护容器化服务至关重要。
|
操作 |
命令 |
说明 |
|---|---|---|
|
查看运行中容器 |
|
查看正在运行的容器 |
|
查看所有容器 |
|
查看所有容器(包括已停止的) |
|
停止容器 |
|
停止指定容器 |
|
启动容器 |
|
启动已停止的容器 |
|
进入容器 |
|
交互式进入容器内部 |
|
查看容器日志 |
|
查看容器的输出日志 |
|
删除容器 |
|
删除已停止的容器 |
🚀 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 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
更多推荐

所有评论(0)