Docker 入门完全指南
·
Docker 入门完全指南
容器这东西,用上了就回不去了。比虚拟机轻,比装环境快,一套走天下。
先搞清楚几个概念
- 镜像(Image):只读模板,类似装系统的ISO
- 容器(Container):镜像跑起来的实例,类似装好系统的虚拟机
- 仓库(Registry):存镜像的地方,Docker Hub是最大的公共仓库
安装
# Ubuntu
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Mac
brew install --cask docker
# Windows
# 下载Docker Desktop,开启WSL2后端
装完验证:
docker --version
docker run hello-world
镜像操作
# 拉镜像
docker pull nginx:1.25
# 看本地镜像
docker images
# 删除镜像
docker rmi nginx:1.25
# 搜索镜像
docker search nginx
容器操作
# 跑容器
docker run -d --name my-nginx -p 80:80 nginx:1.25
# 看运行中的容器
docker ps
# 看所有容器(含停止的)
docker ps -a
# 停止/启动/重启
docker stop my-nginx
docker start my-nginx
docker restart my-nginx
# 进容器里看
docker exec -it my-nginx bash
# 看容器日志
docker logs my-nginx
docker logs -f my-nginx # 实时跟踪
# 删容器
docker rm my-nginx
docker rm -f my-nginx # 强制删运行中的
端口映射
# -p 宿主机端口:容器端口
docker run -d -p 8080:80 nginx # 访问localhost:8080
docker run -d -p 127.0.0.1:3306:3306 mysql # 只本机访问
docker run -d -P nginx # 随机映射端口
数据挂载
# -v 宿主机路径:容器路径
docker run -d -v /data/nginx:/usr/share/nginx/html nginx
# 具名卷
docker run -d -v nginx-data:/usr/share/nginx/html nginx
环境变量
docker run -d -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
docker run -d --env-file ./env.list nginx
清理
# 删停止的容器
docker container prune
# 删没用的镜像
docker image prune
# 全清(慎用)
docker system prune -a
常见坑
- 容器删了数据就没了,重要数据必须挂载卷
- 容器内时区默认UTC,加
-e TZ=Asia/Shanghai或挂载时区文件 - 容器内root就是宿主机root,生产环境用
-u指定用户 - 端口被占用先查
netstat -tlnp | grep 端口号
Docker入门就这么点东西,记住pull/run/exec三板斧就能干活了。后面再慢慢学网络、数据卷、编排这些。
更多推荐



所有评论(0)