云服务器配置指南 (四):Docker,现代运维的瑞士军刀
如果说服务器是厨房,那 Docker 就是预制菜。
以前我们部署应用,要装环境、配依赖、改配置,折腾半天还可能因为版本冲突跑不起来。
有了 Docker,一切都变成了“开袋即食”。不管你的服务器是 Ubuntu 还是 CentOS,只要装了 Docker,应用就能一键跑起来。
本章我们将手把手教你安装和配置 Docker,让你的服务器进入容器化时代。
4.1 Docker 安装:别用 apt install docker
为什么?
Ubuntu 官方源里的 docker.io 版本通常比较老。为了用上最新的特性(和 Bug),我们推荐直接用 Docker 官方的安装脚本。
极简安装法(推荐)
Docker 官方提供了一个一键安装脚本,非常适合懒人:
1 | curl -fsSL https://get.docker.com -o get-docker.sh |
这一行命令下去,它会自动检测你的系统,配置源,安装最新的 Docker Engine 和 Docker Compose。
必要的后续配置
装完别急着庆祝,还有两件事要做。
1. 启动并自启
1 | sudo systemctl start docker |
2. 免 sudo 使用 Docker
默认情况下,运行 docker 命令需要 sudo,这很烦。我们可以把当前用户加入 docker 组:
1 | sudo usermod -aG docker $USER |
注意:执行完这句后,你需要注销并重新登录(或者执行 newgrp docker)才会生效。
验证一下:
1 | docker version |
如果能看到 Client 和 Server 的信息,说明安装成功。
4.2 镜像加速:给 Docker 提速
和 apt 一样,Docker Hub 的服务器也在国外。拉取一个几百兆的镜像,如果不配置加速器,你可能要等到天荒地老。
配置镜像源
1 | sudo mkdir -p /etc/docker |
写入以下内容(这里以阿里云为例,建议去阿里云容器镜像服务申请一个专属加速地址,或者使用国内其他的公开镜像):
1 | { |
特别说明:
我在配置里顺便加了日志限制(log-opts)。如果不加这个,Docker 容器的日志会无限增长,直到把你的磁盘撑爆。这是无数血泪换来的教训。
重启 Docker 生效:
1 | sudo systemctl daemon-reload |
4.3 Docker Compose:容器编排神器
什么是 Docker Compose?
一个容器叫 Docker,一堆容器叫 Docker Compose。
现在的应用很少是单打独斗的,通常需要数据库、缓存、Web 服务配合。用 docker run 一个个启动太累了,用 docker-compose.yml 定义好,一条命令全部拉起。
怎么用?
现在的 Docker 已经内置了 Compose(注意是 docker compose 而不是以前的 docker-compose)。
创建一个 docker-compose.yml:
1 | services: |
启动:
1 | docker compose up -d |
停止:
1 | docker compose down |
4.4 常用命令速查
虽然 GUI 工具(如 Portainer)很好用,但命令行才是男人的浪漫。
- 看容器:
docker ps(加-a看所有) - 看日志:
docker logs -f <容器名>(排错神器) - 进容器:
docker exec -it <容器名> bash(进去修修补补) - 删容器:
docker rm -f <容器名> - 删镜像:
docker rmi <镜像名> - 大扫除:
docker system prune -a(清理所有不用的镜像和容器,慎用!)
总结
Docker 是现代运维的基石。装好了 Docker,你的服务器就变成了一个万能的积木底座。
下一章,我们将利用 Docker 快速搭建一套完整的开发环境,包括 MySQL、Redis 等常用服务。