Docker
Docker 是常用的容器化工具,可以把应用和运行环境一起打包,保证应用在不同环境中具有一致的运行效果。
查看版本
查看本机 Docker 客户端和服务端版本。
写法:
docker version效果/说明:
可以确认 Docker 是否安装成功,以及客户端和服务端是否正常连接。
Client: Docker Engine
Server: Docker Engine查看系统信息
查看 Docker 运行环境、镜像数量、容器数量等信息。
写法:
docker info效果/说明:
Containers: 3
Images: 12
Server Version: 24.0.0镜像管理
镜像是容器运行的基础模板。
拉取镜像
从镜像仓库下载镜像到本地。
写法:
docker pull nginx:latest效果/说明:
latest: Pulling from library/nginx
Status: Downloaded newer image for nginx:latest查看本地镜像
写法:
docker images效果/说明:
REPOSITORY TAG IMAGE ID SIZE
nginx latest abc123456789 192MB删除镜像
写法:
docker rmi nginx:latest效果/说明:
如果镜像正在被容器使用,需要先删除对应容器。
Untagged: nginx:latest容器管理
容器是镜像运行后的实例。
创建并运行容器
使用 nginx 镜像启动一个后台容器。
写法:
docker run -d --name my-nginx -p 8080:80 nginx:latest效果/说明:
-d:后台运行--name:指定容器名称-p 8080:80:将宿主机 8080 端口映射到容器 80 端口
启动后可以通过 http://localhost:8080 访问 nginx。
查看运行中的容器
写法:
docker ps效果/说明:
CONTAINER ID IMAGE COMMAND PORTS NAMES
abc123456789 nginx "/docker-entrypoint..." 0.0.0.0:8080->80/tcp my-nginx查看所有容器
包含已经停止的容器。
写法:
docker ps -a效果/说明:
CONTAINER ID IMAGE STATUS NAMES
abc123456789 nginx Exited (0) 1 minute ago my-nginx停止容器
写法:
docker stop my-nginx效果/说明:
my-nginx启动已停止容器
写法:
docker start my-nginx效果/说明:
my-nginx重启容器
写法:
docker restart my-nginx效果/说明:
my-nginx删除容器
删除停止状态的容器。
写法:
docker rm my-nginx效果/说明:
如果容器正在运行,需要先停止容器,或使用 -f 强制删除。
my-nginx查看日志
查看容器运行日志。
写法:
docker logs my-nginx实时查看日志:
docker logs -f my-nginx效果/说明:
172.17.0.1 - - [01/Jan/2026:00:00:00 +0000] "GET / HTTP/1.1" 200进入容器
进入正在运行的容器内部执行命令。
写法:
docker exec -it my-nginx sh如果容器内有 bash,也可以使用:
docker exec -it my-nginx bash效果/说明:
进入后可以查看容器内文件、执行调试命令。
/ #文件复制
在宿主机和容器之间复制文件。
从宿主机复制到容器
写法:
docker cp ./index.html my-nginx:/usr/share/nginx/html/index.html从容器复制到宿主机
写法:
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf效果/说明:
适合临时导入或导出配置文件、日志文件。
端口映射
使用 -p 宿主机端口:容器端口 将容器服务暴露到宿主机。
写法:
docker run -d --name web -p 3000:80 nginx效果/说明:
访问宿主机 3000 端口时,会转发到容器内的 80 端口。
http://localhost:3000 -> container:80数据卷
数据卷用于持久化容器数据。
挂载目录
写法:
docker run -d --name web -v ./html:/usr/share/nginx/html -p 8080:80 nginx效果/说明:
宿主机 ./html 目录会映射到容器内 /usr/share/nginx/html,修改本地文件即可影响容器内容。
查看数据卷
写法:
docker volume ls删除数据卷
写法:
docker volume rm volume_name环境变量
使用 -e 给容器传递环境变量。
写法:
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8效果/说明:
容器启动时可以读取这些环境变量完成初始化配置。
网络管理
Docker 支持创建自定义网络,让多个容器通过容器名互相访问。
创建网络
写法:
docker network create app-net查看网络
写法:
docker network ls容器加入网络
写法:
docker run -d --name app --network app-net nginx效果/说明:
同一个网络中的容器可以通过容器名访问彼此。
构建镜像
使用 Dockerfile 构建自定义镜像。
Dockerfile 示例
写法:
FROM nginx:latest
COPY ./html /usr/share/nginx/html
EXPOSE 80构建命令
写法:
docker build -t my-nginx:1.0 .效果/说明:
Successfully built abc123456789
Successfully tagged my-nginx:1.0镜像保存与加载
适合在不能直接访问镜像仓库的环境中迁移镜像。
保存镜像
写法:
docker save -o my-nginx.tar my-nginx:1.0加载镜像
写法:
docker load -i my-nginx.tar效果/说明:
Loaded image: my-nginx:1.0Docker Compose
Docker Compose 用于通过配置文件管理多个容器。
compose.yaml 示例
写法:
services:
web:
image: nginx:latest
container_name: web
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html启动服务
写法:
docker compose up -d效果/说明:
[+] Running 1/1
✔ Container web Started查看服务
写法:
docker compose ps停止并删除服务
写法:
docker compose down清理资源
清理无用容器、镜像、网络和缓存。
清理停止的容器
写法:
docker container prune清理未使用镜像
写法:
docker image prune清理所有未使用资源
写法:
docker system prune效果/说明:
清理操作会删除不再使用的资源,执行前需要确认是否仍有需要保留的数据。
常用工作流
下面是一次常见的镜像构建和容器运行流程。
写法:
docker build -t my-app:1.0 .
docker run -d --name my-app -p 8080:80 my-app:1.0
docker logs -f my-app效果/说明:
- 根据 Dockerfile 构建镜像
- 使用镜像启动容器
- 查看容器实时日志
常用命令速查
| 命令 | 说明 |
|---|---|
docker version | 查看 Docker 版本 |
docker info | 查看 Docker 系统信息 |
docker pull <image> | 拉取镜像 |
docker images | 查看本地镜像 |
docker run | 创建并运行容器 |
docker ps | 查看运行中的容器 |
docker ps -a | 查看所有容器 |
docker stop <container> | 停止容器 |
docker start <container> | 启动容器 |
docker restart <container> | 重启容器 |
docker rm <container> | 删除容器 |
docker rmi <image> | 删除镜像 |
docker logs <container> | 查看日志 |
docker exec -it <container> sh | 进入容器 |
docker build -t <name>:<tag> . | 构建镜像 |
docker compose up -d | 启动 Compose 服务 |
docker compose down | 停止并删除 Compose 服务 |
