Skip to content

Docker

Docker 是常用的容器化工具,可以把应用和运行环境一起打包,保证应用在不同环境中具有一致的运行效果。

查看版本

查看本机 Docker 客户端和服务端版本。

写法:

bash
docker version

效果/说明:

可以确认 Docker 是否安装成功,以及客户端和服务端是否正常连接。

text
Client: Docker Engine
Server: Docker Engine

查看系统信息

查看 Docker 运行环境、镜像数量、容器数量等信息。

写法:

bash
docker info

效果/说明:

text
Containers: 3
Images: 12
Server Version: 24.0.0

镜像管理

镜像是容器运行的基础模板。

拉取镜像

从镜像仓库下载镜像到本地。

写法:

bash
docker pull nginx:latest

效果/说明:

text
latest: Pulling from library/nginx
Status: Downloaded newer image for nginx:latest

查看本地镜像

写法:

bash
docker images

效果/说明:

text
REPOSITORY   TAG       IMAGE ID       SIZE
nginx        latest    abc123456789   192MB

删除镜像

写法:

bash
docker rmi nginx:latest

效果/说明:

如果镜像正在被容器使用,需要先删除对应容器。

text
Untagged: nginx:latest

容器管理

容器是镜像运行后的实例。

创建并运行容器

使用 nginx 镜像启动一个后台容器。

写法:

bash
docker run -d --name my-nginx -p 8080:80 nginx:latest

效果/说明:

  • -d:后台运行
  • --name:指定容器名称
  • -p 8080:80:将宿主机 8080 端口映射到容器 80 端口

启动后可以通过 http://localhost:8080 访问 nginx。

查看运行中的容器

写法:

bash
docker ps

效果/说明:

text
CONTAINER ID   IMAGE   COMMAND                  PORTS                  NAMES
abc123456789   nginx   "/docker-entrypoint..."   0.0.0.0:8080->80/tcp   my-nginx

查看所有容器

包含已经停止的容器。

写法:

bash
docker ps -a

效果/说明:

text
CONTAINER ID   IMAGE   STATUS                    NAMES
abc123456789   nginx   Exited (0) 1 minute ago    my-nginx

停止容器

写法:

bash
docker stop my-nginx

效果/说明:

text
my-nginx

启动已停止容器

写法:

bash
docker start my-nginx

效果/说明:

text
my-nginx

重启容器

写法:

bash
docker restart my-nginx

效果/说明:

text
my-nginx

删除容器

删除停止状态的容器。

写法:

bash
docker rm my-nginx

效果/说明:

如果容器正在运行,需要先停止容器,或使用 -f 强制删除。

text
my-nginx

查看日志

查看容器运行日志。

写法:

bash
docker logs my-nginx

实时查看日志:

bash
docker logs -f my-nginx

效果/说明:

text
172.17.0.1 - - [01/Jan/2026:00:00:00 +0000] "GET / HTTP/1.1" 200

进入容器

进入正在运行的容器内部执行命令。

写法:

bash
docker exec -it my-nginx sh

如果容器内有 bash,也可以使用:

bash
docker exec -it my-nginx bash

效果/说明:

进入后可以查看容器内文件、执行调试命令。

text
/ #

文件复制

在宿主机和容器之间复制文件。

从宿主机复制到容器

写法:

bash
docker cp ./index.html my-nginx:/usr/share/nginx/html/index.html

从容器复制到宿主机

写法:

bash
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf

效果/说明:

适合临时导入或导出配置文件、日志文件。

端口映射

使用 -p 宿主机端口:容器端口 将容器服务暴露到宿主机。

写法:

bash
docker run -d --name web -p 3000:80 nginx

效果/说明:

访问宿主机 3000 端口时,会转发到容器内的 80 端口。

text
http://localhost:3000 -> container:80

数据卷

数据卷用于持久化容器数据。

挂载目录

写法:

bash
docker run -d --name web -v ./html:/usr/share/nginx/html -p 8080:80 nginx

效果/说明:

宿主机 ./html 目录会映射到容器内 /usr/share/nginx/html,修改本地文件即可影响容器内容。

查看数据卷

写法:

bash
docker volume ls

删除数据卷

写法:

bash
docker volume rm volume_name

环境变量

使用 -e 给容器传递环境变量。

写法:

bash
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8

效果/说明:

容器启动时可以读取这些环境变量完成初始化配置。

网络管理

Docker 支持创建自定义网络,让多个容器通过容器名互相访问。

创建网络

写法:

bash
docker network create app-net

查看网络

写法:

bash
docker network ls

容器加入网络

写法:

bash
docker run -d --name app --network app-net nginx

效果/说明:

同一个网络中的容器可以通过容器名访问彼此。

构建镜像

使用 Dockerfile 构建自定义镜像。

Dockerfile 示例

写法:

dockerfile
FROM nginx:latest
COPY ./html /usr/share/nginx/html
EXPOSE 80

构建命令

写法:

bash
docker build -t my-nginx:1.0 .

效果/说明:

text
Successfully built abc123456789
Successfully tagged my-nginx:1.0

镜像保存与加载

适合在不能直接访问镜像仓库的环境中迁移镜像。

保存镜像

写法:

bash
docker save -o my-nginx.tar my-nginx:1.0

加载镜像

写法:

bash
docker load -i my-nginx.tar

效果/说明:

text
Loaded image: my-nginx:1.0

Docker Compose

Docker Compose 用于通过配置文件管理多个容器。

compose.yaml 示例

写法:

yaml
services:
  web:
    image: nginx:latest
    container_name: web
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html

启动服务

写法:

bash
docker compose up -d

效果/说明:

text
[+] Running 1/1
 ✔ Container web  Started

查看服务

写法:

bash
docker compose ps

停止并删除服务

写法:

bash
docker compose down

清理资源

清理无用容器、镜像、网络和缓存。

清理停止的容器

写法:

bash
docker container prune

清理未使用镜像

写法:

bash
docker image prune

清理所有未使用资源

写法:

bash
docker system prune

效果/说明:

清理操作会删除不再使用的资源,执行前需要确认是否仍有需要保留的数据。

常用工作流

下面是一次常见的镜像构建和容器运行流程。

写法:

bash
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

效果/说明:

  1. 根据 Dockerfile 构建镜像
  2. 使用镜像启动容器
  3. 查看容器实时日志

常用命令速查

命令说明
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 服务
二维码手机扫码查看