《Docker 零基础入门到实战:容器化部署如此简单,运维效率直接拉满》
相信你对封面图上的「Docker 鲸鱼」图标并不陌生 —— 它正是解决「开发环境能跑,生产环境崩了」的容器化神器!Docker 通过打包应用与依赖到轻量容器,实现了「一次构建,到处运行」,彻底消除环境不一致的痛点。本文从 Docker 核心概念(镜像 / 容器 / 仓库)讲起,手把手教你安装配置、构建自定义镜像、Docker Compose 编排多容器,最后附上 SpringBoot 项目容器化部署的完整实战,让运维小白也能快速上手容器技术!
为什么使用docker
之前都是用Linux+centos(Iso镜像)得到一个可以使用的linux系统
然后配置数据库 ,nginx 等
这种方式部署慢,成本高,造成了资源的浪费,并且难于迁移和扩展
并且之前的虚拟化技术(vmware,kvm)的目标都是一台完整的计算机
而我们的需求仅仅是想使用多个应用程序,让他们相互独立,而不是得到一台完整的系统
docker使用容器技术对进程进行封装隔离
Docker 简介
Docker 是一种容器化技术,允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。容器与虚拟机不同,它直接运行在宿主机的操作系统上,共享系统内核,因此更加高效和快速。
安装 Docker
-
Windows/macOS:
- 下载 Docker Desktop(官网链接),安装后启动。
- 确保启用 WSL 2(Windows)或 HyperKit(macOS)。
-
Linux(Ubuntu):
sudo apt update sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
- 验证安装:
docker --version
。
- 验证安装:
基本概念
- 镜像(Image):只读模板,用于创建容器。
- 容器(Container):镜像的运行实例,包含应用程序和运行环境。
- Dockerfile:文本文件,定义如何构建镜像。
举例:程序员在写好代码之后,要交给测试人员代码,此时测试人员没有环境和依赖,所以程序员会开发dockerfile脚本,完成的效果就是将代码,依赖和环境全部打包为一个镜像文件(image),测试人员直接运行这个镜像就可以运行
容器
1. 容器内没有自己的内核,也没有对硬件进行虚拟,Docker引擎容器仅包含应用程序及其依赖项,他在主机操作系统的用户控件中作为一个独立的进程运行,与其他容器共享内核,因此容器中的程序直接运行在宿主机上,能够使用宿主机最大的硬件资源
2. 一个宿主机可以启动100+的容器数量,并且启动一个容器的时间只需要1S
拉取第一个容器
- 拉取官方测试镜像:
docker pull hello-world
- 运行容器:
docker run hello-world
- 输出
Hello from Docker!
表示成功。
- 输出
构建自定义镜像
- 创建
Dockerfile
文件:FROM alpine:latest CMD echo "Hello, Docker!"
- 构建镜像:
docker build -t my-image .
- 运行容器:
docker run my-image
管理容器和镜像
- 查看运行中的容器:
docker ps
- 查看所有容器:
docker ps -a
- 停止容器:
docker stop <容器ID>
- 删除容器:
docker rm <容器ID>
- 列出镜像:
docker images
- 删除镜像:
docker rmi <镜像名>
数据持久化(卷挂载)
- 将主机目录挂载到容器:
docker run -v /host/path:/container/path my-image
网络配置
- 映射容器端口到主机:
docker run -p 8080:80 nginx
- 访问
http://localhost:8080
可看到 Nginx 默认页面。
- 访问
常用命令速查
命令 | 功能 | 示例 |
---|---|---|
docker run | 启动一个新的容器并运行命令 | docker run -d ubuntu |
docker ps | 列出当前正在运行的容器 | docker ps |
docker ps -a | 列出所有容器(包括已停止的容器) | docker ps -a |
docker search | 寻找镜像 | docker search 镜像名 |
docker build | 使用 Dockerfile 构建镜像 | docker build -t my-image . |
docker images | 列出本地存储的所有镜像 | docker images |
docker pull | 从 Docker 仓库拉取镜像 | docker pull ubuntu |
docker push | 将镜像推送到 Docker 仓库 | docker push my-image |
docker stop | 停止一个或多个容器 | docker stop container_name |
docker start | 启动已停止的容器 | docker start container_name |
docker restart | 重启一个容器 | docker restart container_name |
docker rmi | 删除一个或多个镜像 | docker rmi my-image |
docker logs | 查看容器的日志 | docker logs container_name |
docker version | 显示 Docker 客户端和守护进程的版本信息 | docker version |
docker pause | 暂停容器中的所有进程 | docker pause my_container |
docker create | 创建一个新的容易,但不会启动它 | docker create ubuntu |
docker run -it | 启动一个容器并进入终端 | docker run -it ubuntu bash |
| 要退出终端,直接输入 exit: ubuntu 镜像。 | /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 |
docker exec -it | 进入在后台运行的容器 | docker exec -it ubuntu bash |