深入解析:Docker部署与常用命令
目录
1.拉取镜像docker pull nginx (默认版本最新)
3.打包镜像 docker save -o nginx.tar nginx:latest
4.还原镜像docker load -i nginx.tar编辑
5.创建运行容器 docker run -d --name nginx -p 80:80 nginx
6.查看正在运行的容器列表 docker ps --format(按格式输出) -a(输出全部)
1.镜像和容器

Docker 把应用代码 + 运行时依赖(库、配置、系统设备)打成一个镜像(Image),
镜像启动后变成容器(Container),容器之间进程级隔离、秒级启停、资源可限额,却共享宿主机内核,于是比虚拟机轻 10 倍、快 10 倍。
2.Docker部署



3.Docker常用命令

一、镜像相关(image)
| 命令 | 一句话作用 | 示例 |
|---|---|---|
docker pull | 从远程仓库拉镜像到本地 | docker pull nginx:1.25 |
docker push | 把本地镜像推到远程仓库 | docker push user/myapp:v1 |
docker images | 查看本地已有镜像列表 | docker images |
docker rmi | 删除本地镜像(rmi=remove image) | docker rmi nginx:1.24 |
docker save | 把镜像打成 tar 包,方便离线拷贝 | docker save nginx:1.25 > ng.tar |
docker load | 把 tar 包还原成镜像 | docker load < ng.tar |
二、容器生命周期(container)
docker run | 创建并启动一个容器(一次性命令) | docker run -d -p 80:80 nginx |
docker start | 把已存在但停止的容器重新启动 | docker start my-nginx |
docker stop | 优雅停止运行中的容器 | docker stop my-nginx |
docker ps | 查看正在运行的容器列表 | docker ps |
docker ps -a | 查看所有容器(含已停止) | docker ps -a |
docker rm | 删除容器(rm=remove) | docker rm my-nginx |
三、调试与进入容器
docker logs | 看容器控制台日志 | docker logs -f my-nginx |
docker exec | 进入正在运行的容器里执行命令 | docker exec -it my-nginx bash |
四、构建镜像(Dockerfile)
| 命令 | 一句话作用 | 示例 |
|---|---|---|
docker build | 用 Dockerfile 制作镜像 | docker build -t user/myapp:v1 . |
五、部署Nginx(例)

1.拉取镜像docker pull nginx (默认版本最新)
2.查看当前所有镜像docker images
IMAGE ID 是镜像唯一ID
3.打包镜像 docker save -o nginx.tar nginx:latest
docker save导出镜像(可理解为“镜像压缩”) -o nginx.tar指定输出文件名(o = output) nginx:latest要导出的镜像(仓库:标签)
4.还原镜像docker load -i nginx.tar
5.创建运行容器 docker run -d --name nginx -p 80:80 nginx
docker run创建并运行新容器 -ddetached 模式,后台运行,不占用当前终端 --name nginx给容器起个名字叫 nginx(好记,后续docker stop nginx就能操作)-p 80:80端口映射: 主机端口:容器端口。这里把主机的 80 映射到容器的 80,浏览器访问http://主机IP就能进到 Nginxnginx要使用的镜像名称(官方最新版)
6.查看正在运行的容器列表 docker ps --format(按格式输出) -a(输出全部)
4.命令别名

vi /root/.bashrc 或者 ~/.bashrc 修改记录内容
自定义命令别名
source ~/.bashrc 让改动的配置立即生效
5.数据卷挂载
一:案例背景


docker exec -it nginx bash 进入nginx容器
cd /usr/share/nginx/html 进入html文件
发现ll指令和vi指令都找不到,无法在容器内修改指令
因为:镜像只涵盖程序执行的最小环境和配置。
二:数据卷概念

“数据卷就是 Docker 在宿主机上自动开辟的一块专属目录,容器启动时把它‘挂靠’到容器里的某个路径,两边对同一块磁盘读写,实现材料持久化 + 实时共享。”
三:常用命令
四:挂载
必须在创建容器时挂载,创建时未挂载要删除容器重新创建挂载。


docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
在创建容器时通过 -v html:/usr/share/nginx/html
把 Docker 数据卷
html挂到容器里 Nginx 的网页根目录;卷不存在会自动创建

docker ps 查看运行中容器
docker volume ls 查看所有数据卷

docker volume inspect html 查看html数据库详细信息
Mountpoint :“/var/lib/docker/volumes/html/_data” 数据卷在宿主机上的物理存储位置
由此形成了容器文件与宿主机的映射关系
五:总结

6.本地目录挂载


7.自定义镜像
一:镜像结构

二:Dockerfile





8.网络








浙公网安备 33010602011771号