Docker 是一个开源的平台,旨在帮助开发者和系统管理员通过容器化技术构建、发布和运行应用程序。在日常的开发和运维工作中,掌握一些常用的 Docker 命令可以极大地提升工作效率。本文将介绍一些 Docker 常用的命令,帮助你快速上手和提高。
docker run
创建并启动一个容器,是最常用的命令之一。docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用选项:
-d
:让容器在后台运行(Detached 模式)。-it
:以交互模式运行容器,并附加到容器的终端。--name
:为容器指定自定义名称。-p
:将主机端口映射到容器端口,格式为主机端口:容器端口,(如-p 8080:80
)。-v
:将主机目录挂载到容器中,通常用于数据持久化。--rm
:容器停止后自动删除容器。-e
:设置环境变量,可以传递给容器内的应用程序。--network
:指定容器要加入的网络。可以是bridge
、host
、none
或自定义网络。--memory
/-m
:限制容器可使用的最大内存量。--restart
:配置容器的重启策略。Docker 容器的重启策略选择
示例:
docker run -d -p 80:80 --name my_web nginx
docker ps
查看当前运行中的容器查看当前运行中的容器。
常用选项:
-a
:查看所有容器(包括已停止的)。-q
:只显示容器 ID。
示例:
docker ps -a
显示所有容器,包括停止的容器。
docker start/restart/stop
对容器进行启动、重启、停止的操作。docker start
:启动处于停止状态的容器进程。docker restart
:重启正在运行的容器进程。docker stop
:停止正在运行的容器进程。
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]
示例:
docker stop my_container
docker restart my_container
docker start my_container
docker inspect
获取容器的详细配置信息和状态docker inspect [OPTIONS] CONTAINER
实例:
docker inspect my_container
显示 my_container
容器的配置信息。
docker stats
查看容器的实时资源使用情况(CPU、内存等)。docker stats [OPTIONS] [CONTAINER...]
示例:
docker stats my_web
docker exec
在运行的容器内执行命令。docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
-it
:在交互模式下执行命令。
示例:
docker exec -it my_container /bin/bash
在容器 my_container
内启动一个 Bash shell。
docker logs
查看容器的日志输出。docker logs [OPTIONS] CONTAINER
-f
:跟踪日志输出(类似tail -f
)。--tail
:只显示最近的日志行数。
示例:
docker logs -f my_container
跟踪名为 my_container
的容器的日志输出。
docker top
查看容器中运行的进程。docker top CONTAINER
示例:
docker top my_container
UID PID PPID C STIME TTY TIME CMD
root 69040 69020 0 18:37 pts/0 00:00:00 bash
输出说明
UID 容器中运行的命令用户ID
PID 容器中运行的命令PID
PPID 容器中运行的命令父PID,由于PPID是一个容器,此可指为容器在Docker Host中进程ID
C 占用CPU百分比
STIME 启动时间
TTY 运行所在的终端
TIME 运行时间
CMD 执行的命令
显示容器 my_container
中的运行进程。
docker rm
删除一个或多个容器。注意,容器必须已停止运行才能删除。docker rm [OPTIONS] CONTAINER [CONTAINER...]
-f
:强制删除正在运行的容器(会先停止再删除)。-v
:删除容器时,还会删除与容器关联的卷。
示例:
docker rm my_container
删除名为 my_container
的容器。
docker kill
强制终止一个容器。docker kill [OPTIONS] CONTAINER [CONTAINER...]
示例:
docker kill my_container
强制终止 my_container
容器。
docker attach
将当前终端附加到运行中的容器中。docker attach [OPTIONS] CONTAINER
示例:
ocker attach my_container
附加到名为 my_container
的运行中的容器。
docker rename
重命名一个容器。docker rename [OPTIONS] OLD_NAME NEW_NAME
示例:
docker rename old_container new_container
将容器 old_container
重命名为 new_container
。
docker pause/unpause
暂停或恢复容器中的所有进程。docker pause
:暂停容器中的所有进程。docker unpause
:恢复被暂停的容器进程。
docker pause CONTAINER
docker unpause CONTAINER
示例:
docker pause my_container
docker unpause my_container
暂停并恢复容器 my_container
。
docker commit
将容器的当前状态保存为一个新镜像。docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
示例:
docker commit my_container new_image:latest
将容器 my_container
的当前状态保存为镜像 new_image:latest
。
docker cp
从容器中拷贝文件到主机或从主机拷贝文件到容器。docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
示例:
docker cp my_container:/path/in/container /path/on/host
从容器 my_container
中拷贝文件到主机。
docker diff
查看容器文件系统中的更改。docker diff CONTAINER
示例:
docker diff my_container
显示容器 my_container
文件系统的更改。
docker export/import
将容器导出为一个 tar 文件,该文件不包含镜像的构建信息,将导出的容器文件系统可以重新导入为一个新的 Docker 镜像。docker export
: 备份容器的文件系统或将容器的状态导出用于迁移docker import
: 将容器文件系统导入为镜像,然后使用该镜像启动新容器
docker export [OPTIONS] CONTAINER
CONTAINER
:要导出的容器 ID 或名称。-o
:指定导出的文件名。
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
file|URL|-
:要导入的 tar 文件,可以是本地文件或 URL。REPOSITORY[:TAG]
:要导入的镜像名称和标签
示例:
docker export -o my_container_backup.tar my_container
docker import my_container_backup.tar my_new_image:latest
将容器 my_container
的文件系统导出为 my_container_backup.tar
, 将 my_container_backup.tar
导入为新的 Docker 镜像,命名为 my_new_image:latest
。