Docker 入门:安装与常用命令
Docker 让”在我机器上能跑”成为历史。把应用和环境打包成镜像,丢到哪台机器都能跑起来。
一、Docker 是什么
传统方式:装应用要先装依赖,A 机器能跑,B 机器缺个库就报错。
Docker 方式:把应用+依赖+配置打成一个镜像,镜像启动后叫容器。镜像在哪,应用就在哪跑,一模一样。
镜像 vs 容器:镜像是只读的模板(像安装包),容器是运行中的实例(像装好的软件)。一个镜像可以启动多个容器。
二、安装(Ubuntu)
sudo apt update sudo apt install docker.io -y sudo systemctl enable docker sudo systemctl start docker docker --version # 验证安装
把当前用户加入 docker 组,免 sudo:
sudo usermod -aG docker $USER # 重新登录生效,或执行: newgrp docker
三、跑第一个容器
docker run hello-world
这行命令做了 4 件事:本地没镜像 → 去 Docker Hub 下载 → 启动容器 → 输出 Hello 后退出。
跑一个长期运行的 Nginx:
docker run -d --name my-nginx -p 8080:80 nginx
参数解释:
-d:后台运行--name my-nginx:给容器起名字-p 8080:80:把宿主机的 8080 端口映射到容器的 80 端口nginx:用的镜像名
浏览器打开 http://服务器IP:8080,看到 Nginx 欢迎页。
四、常用命令
docker ps # 看运行中的容器 docker ps -a # 看所有容器(含停止的) docker images # 看本地镜像 docker stop my-nginx # 停止容器 docker start my-nginx # 启动已停止的容器 docker restart my-nginx# 重启 docker rm my-nginx # 删除容器(先 stop) docker rmi nginx # 删除镜像 docker logs my-nginx # 看容器日志 docker exec -it my-nginx bash # 进容器里执行命令
五、数据持久化:Volume
容器删了,里面的数据就没了。用 -v 把宿主机目录挂载进容器,数据存在宿主机上:
docker run -d --name my-nginx \ -p 8080:80 \ -v /host/path:/usr/share/nginx/html \ nginx
这样 /host/path 里放的网页文件,容器里的 Nginx 就能 serve 出来。容器删了文件还在。
六、Docker Compose(多容器)
一个应用要多个容器配合(比如 WordPress + MySQL),用 compose 一次编排:
sudo apt install docker-compose -y
# docker-compose.yml
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: 123456
docker-compose up -d # 启动 docker-compose down # 停止并删除
七、清理
docker system prune # 清理停止的容器、无用镜像、网络 docker system prune -a # 连没用的镜像一起清(慎用)
什么时候用 Docker
- ✅ 快速部署应用,不想折腾环境
- ✅ 一台机器跑多个隔离的应用
- ✅ 开发测试环境与生产一致
- ❌ 对性能极度敏感的场景(有轻微 overhead)
- ❌ 1G 小内存机器跑太多容器(每个容器都占内存)
本文为杰哥的折腾笔记原创教程,转载请注明出处。
