Docker 实战入门:从容器到应用部署
在服务器、NAS 和家庭实验室中,我们经常需要部署各种应用。如果直接安装,每个软件都有不同的依赖环境,时间久了容易出现版本冲突。
Docker 的出现很好地解决了这个问题。
一、Docker 到底解决了什么问题?
Docker 可以把一个应用以及它运行所需要的环境一起打包成镜像,然后通过镜像创建独立的容器。
简单理解:
镜像 = 应用安装包
容器 = 镜像运行后的实例
例如,我们可以直接使用 Nginx 镜像创建一个 Web 服务,而不需要手动安装 Nginx、配置运行环境。
二、常用 Docker 命令
日常使用 Docker,下面几个命令非常重要:
# 查看正在运行的容器
docker ps
# 查看所有容器
docker ps -a
# 查看本地镜像
docker images
# 启动容器
docker start nginx
# 停止容器
docker stop nginx
# 重启容器
docker restart nginx
# 查看容器日志
docker logs nginx
# 进入容器
docker exec -it nginx sh
掌握这些命令,基本就可以完成大部分简单的容器管理工作。
三、数据为什么需要持久化?
Docker 容器本身是相对独立的。如果把重要数据直接存储在容器内部,删除容器后可能导致数据丢失。
因此,数据库、配置文件等重要数据通常应该使用 Volume(数据卷) 或目录映射。
例如:
docker run -d \
--name nginx \
-p 8080:80 \
-v /data/nginx:/usr/share/nginx/html \
nginx
这样,网站文件实际上保存在宿主机的 /data/nginx 中,即使删除并重新创建容器,数据依然可以保留。
四、Docker Compose 更适合多容器应用
当一个应用需要数据库、Redis、Web 服务等多个容器时,逐个输入 docker run 命令会非常麻烦。
这时候可以使用 Docker Compose。
例如:
services:
nginx:
image: nginx:alpine
container_name: nginx
ports:
- "8080:80"
restart: unless-stopped
保存为 compose.yml 后,可以使用:
docker compose up -d
停止服务:
docker compose down
这样就可以通过一个配置文件管理整个应用。
五、Docker 网络
Docker 容器之间也可以通过 Docker 网络进行通信。
例如:
docker network ls
常见网络模式包括:
-
bridge:Docker 默认网络模式,适合大多数应用。
-
host:容器直接使用宿主机网络。
-
macvlan:让容器拥有独立的局域网 IP。
-
overlay:主要用于跨主机容器网络。
在家庭 NAS、旁路由和 VPS 环境中,合理选择网络模式非常重要。
六、Docker 的优势
Docker 最大的价值并不仅仅是“方便安装软件”,而是让应用具备更好的隔离性、可移植性和可维护性。
例如,同一台服务器上可以同时运行 Nginx、数据库、监控系统和各种 Web 服务,而不同应用之间不会轻易产生软件依赖冲突。
七、总结
Docker 可以把复杂的应用部署过程变得更加标准化。
对于个人用户来说,可以从三个方面开始学习:
镜像 → 容器 → Docker Compose
掌握这三个核心概念后,再进一步学习 Docker 网络、数据卷、反向代理和容器安全,就能够搭建出一套完整的自托管服务环境。
对于 NAS、VPS 和家庭实验室用户而言,Docker 已经成为非常实用的基础工具。
- 点赞
- 收藏
- 关注作者
评论(0)