在本部分中,我将为您提供一个完整的Docker命令列表,包含命令的注释说明和具体的使用示例,帮助您更全面地理解每个命令的功能和应用场景:
Docker 常用命令汇总
-
查看 Docker 版本信息
docker version # 显示 Docker 的版本信息
示例输出:
Client: Docker Engine - Community Version: 19.03.12 Server: Docker Engine - Community Engine: Version: 19.03.12
-
获取 Docker 系统的信息
docker info # 显示 Docker 的系统信息,包括容器和镜像数量
示例部分输出:
Containers: 10 Running: 3 Paused: 0 Stopped: 7 Images: 50 Server Version: 19.03.12
-
列出本地镜像
docker images # 列出本地存储的所有镜像
示例输出:
REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 4e5021d210f6 2 weeks ago 64.2MB nginx stable 56bc4e1fdd8d 3 weeks ago 126MB
-
查看正在运行的容器
docker ps # 查看当前正在运行的容器
示例输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c3f279d17e0a nginx "/docker-entrypoint.…" 3 weeks ago Up 3 days 80/tcp webserver
-
查看容器日志
docker logs <容器名称或ID> # 显示指定容器的日志
示例用法:
docker logs webserver
示例输出:
127.0.0.1 - - [12/Oct/2023:14:55:29 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"
-
进入容器
docker exec -it <容器名称或ID> /bin/bash # 进入容器并启动 Bash Shell
示例用法:
docker exec -it webserver /bin/bash
-
退出容器
exit # 退出当前容器的 Shell
-
列出所有容器
docker ps -a # 列出所有容器,包括未运行的
-
运行容器
docker run -itd --privileged --name <容器名称> -v <本地路径>:<容器内路径> <镜像ID>
示例用法:
docker run -itd --privileged --name mycontainer -v /Users/example:/home/docker/data ad2419b0e531
-
停止容器
docker stop <容器名称或ID> # 停止一个运行中的容器
示例用法:
docker stop webserver
-
重启容器
docker restart <容器名称或ID> # 重启容器
-
删除容器
docker rm <容器名称或ID> # 删除一个容器
-
查看容器详细信息
docker inspect <容器ID或名称> # 查看容器详细信息,包括挂载目录
docker run 命令格式与参数解析
命令 docker run
是 Docker 中最常用的命令之一,它用于创建一个新的容器并运行一个命令。该命令具有多个参数,可以根据需要进行详细配置。
docker run -itd --privileged --name <容器名称> -v <本地路径>:<容器内路径> <镜像ID>
-
-itd
: 这是三个参数的组合,常用于控制容器的交互模式和后台运行状态:-
-i
(--interactive
): 保持标准输入(STDIN)开启,即使不附加到容器。 -
-t
(--tty
): 分配一个伪终端,这通常用于使容器在运行时更像一个交互式会话。 -
-d
(--detach
): 在后台运行容器,并打印容器 ID。这允许容器在后台执行,命令行可以立即返回。
-
-
--privileged
: 给予容器额外的权限。当你的容器需要执行一些需要更高权限的操作时(如直接访问硬件设备),你可以使用这个选项。这会给予容器几乎同宿主机相同的权限。 -
--name <容器名称>
: 指定容器的名称。这允许您为容器指定一个易于记忆的名字,而不是使用 Docker 自动生成的随机名称。 -
-v <本地路径>:<容器内路径>
: 挂载一个卷(Volume)或绑定宿主机的目录到容器内部的指定路径。这使得容器能够共享和访问宿主机上的数据。-
<本地路径>
: 宿主机上的文件路径,这个路径的数据将被挂载到容器中。 -
<容器内路径>
: 容器内的目标路径,宿主机上的<本地路径>
将映射到这里。
-
-
<镜像ID>
: 这是用于创建容器的基础镜像。这可以是任何有效的镜像 ID,或者从 Docker Hub 上拉取的镜像名称和标签。
示例解析:
假设您希望运行一个基于 Ubuntu 的容器,容器名为 myubuntu
,并希望将宿主机的 /home/user/data
目录挂载到容器的 /data
目录,并在后台运行:
docker run -itd --privileged --name myubuntu -v /home/user/data:/data ubuntu:latest
在这个例子中:
- 使用了最新版的 Ubuntu 镜像(
ubuntu:latest
)。 - 容器被命名为
myubuntu
。 - 宿主机的
/home/user/data
目录被挂载到容器内的/data
目录。 - 容器在后台运行,且配置为交互式,有一个分配的终端。
这个命令将允许你运行一个 Ubuntu 容器,同时能够在宿主机和容器之间共享 /home/user/data
目录中的文件,这对于数据持久化和数据交换非常有用。