十分钟读懂 Docker:镜像、容器与常用命令
如果你写过这样的抱怨:“在我机器上明明是好的”,那 Docker 就是为你准备的。Docker 把应用和它依赖的环境打包在一起,无论在哪台机器上运行,行为都一致。
先分清两个核心概念。镜像(Image)是只读的模板,好比安装光盘;容器(Container)是镜像运行起来的实例,好比用光盘装好的系统。你可以从一个镜像启动无数个相互隔离的容器。
安装 Docker 后,先跑一条命令验证:
docker run hello-world
这条命令会拉取官方测试镜像并运行,看到 “Hello from Docker!” 就说明环境正常。
日常最常用的几条命令:
- docker ps:查看正在运行的容器,加上 -a 查看所有(含已停止)。
- docker pull nginx:从镜像仓库拉取镜像到本地。
- docker run -d -p 8080:80 nginx:后台启动一个 nginx 容器,把宿主机的 8080 端口映射到容器的 80 端口,浏览器访问 localhost:8080 就能看到欢迎页。
- docker logs <容器名>:查看容器日志,排错第一步。
- docker exec -it <容器名> /bin/bash:进入正在运行的容器的 shell。
- docker stop / docker rm:停止与删除容器;docker rmi:删除镜像。
想把自己的应用容器化?写一个 Dockerfile 即可,三行就能跑一个 Python 服务:
FROM python:3.12-slim
COPY . /app
CMD ["python", "/app/main.py"]
然后 docker build -t myapp . 构建镜像,docker run -d -p 8000:8000 myapp 启动。改代码、重新构建、重新运行,环境永远一致。
当服务变多,一个个 run 会很繁琐,这时可以用 Docker Compose:把多个容器的配置写进 docker-compose.yml,一条 docker compose up 全部拉起,适合本地开发联调。
新手建议:先用官方镜像练手(nginx、redis、mysql),别急着自己写复杂 Dockerfile;容器里产生的重要数据记得用 -v 挂载卷持久化,否则容器删除数据就没了;不用的容器和镜像定期 docker system prune 清理,省磁盘。
Docker 的学习曲线很平缓,核心就是"镜像是模板,容器是实例"。掌握上面几条命令,你已经能应付八成的日常场景了。
- 点赞
- 收藏
- 关注作者
评论(0)