Docker部署与常用命令

目录

1.镜像和容器

2.Docker部署

3.Docker常用命令

一、镜像相关(image)

二、容器生命周期(container)

三、调试与进入容器

四、构建镜像(Dockerfile)

五、部署Nginx(例)

[1.拉取镜像docker pull nginx (默认版本最新)](#1.拉取镜像docker pull nginx (默认版本最新))

[2.查看当前所有镜像docker images](#2.查看当前所有镜像docker images)

[3.打包镜像 docker save -o nginx.tar nginx:latest](#3.打包镜像 docker save -o nginx.tar nginx:latest)

[4.还原镜像docker load -i nginx.tar​编辑](#4.还原镜像docker load -i nginx.tar编辑)

[5.创建运行容器 docker run -d --name nginx -p 80:80 nginx](#5.创建运行容器 docker run -d --name nginx -p 80:80 nginx)

[6.查看正在运行的容器列表 docker ps --format(按格式输出) -a(输出全部)](#6.查看正在运行的容器列表 docker ps --format(按格式输出) -a(输出全部))

4.命令别名

5.数据卷挂载

一:案例背景

二:数据卷概念

三:常用命令​

四:挂载

五:总结

6.本地目录挂载

7.自定义镜像

一:镜像结构

二:Dockerfile

8.网络


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 | 创建并运行新容器 |
| -d | detached 模式,后台运行,不占用当前终端 |
| --name nginx | 给容器起个名字叫 nginx(好记,后续 docker stop nginx 就能操作) |
| -p 80:80 | 端口映射:主机端口:容器端口。这里把主机的 80 映射到容器的 80,浏览器访问 http://主机IP 就能进到 Nginx |
| nginx | 要使用的镜像名称(官方最新版) |

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.网络

相关推荐
indexsunny1 天前
互联网大厂Java求职面试实战:Spring Boot微服务与Redis缓存场景解析
java·spring boot·redis·缓存·微服务·消息队列·电商
无心水1 天前
【分布式利器:腾讯TSF】7、TSF高级部署策略全解析:蓝绿/灰度发布落地+Jenkins CI/CD集成(Java微服务实战)
java·人工智能·分布式·ci/cd·微服务·jenkins·腾讯tsf
28岁青春痘老男孩1 天前
JDK8+SpringBoot2.x 升级 JDK 17 + Spring Boot 3.x
java·spring boot
方璧1 天前
限流的算法
java·开发语言
元Y亨H1 天前
Nacos - 服务注册
java·微服务
zyu671 天前
03-Docker存储和网络
网络·docker·容器
曲莫终1 天前
Java VarHandle全面详解:从入门到精通
java·开发语言
一心赚狗粮的宇叔1 天前
中级软件开发工程师2025年度总结
java·大数据·oracle·c#
奋进的芋圆1 天前
DataSyncManager 详解与 Spring Boot 迁移指南
java·spring boot·后端
计算机程序设计小李同学1 天前
个人数据管理系统
java·vue.js·spring boot·后端·web安全