Docker常用命令记录操作

Docker容器作为一种轻量级的虚拟化技术,具有灵活性、可移植性、可扩展性等优势,在容器化应用开发和部署中得到了广泛的应用。

这篇博文记录了个人在使用Docker容器过程中常用的操作命令。主要包括镜像操作命令、容器操作命令、网络操作命令、存储操作命令等。

1、容器操作

  • 列出正在运行的容器:

使用docker ps 命令可以列出当前所有正在运行的容器。

  • 列出所有容器(包括运行中和已停止的):

执行docker ps -a 命令可以显示所有容器,无论它们当前是否在运行。 运行容器(启动并附加到容器):

使用docker run <镜像名称> 命令来启动一个新的容器实例。

  • 以分离模式运行容器:

通过docker run -d <镜像名称> 命令可以在后台运行容器,这样不会占用终端。

  • 映射端口运行容器:

执行docker run -p <宿主机端口>:<容器端口> <镜像名称> 命令可以在运行容器时映射容器内部端口到宿主机端口。

  • 停止正在运行的容器:

使用docker stop <容器ID> 命令来停止一个正在运行的容器。

  • 启动已停止的容器:

通过docker start <容器ID> 命令来重启一个已经停止的容器。

  • 移除已停止的容器:

执行docker rm <容器ID> 命令来删除一个不再需要的容器。

2、镜像管理

  • 列出Docker镜像:

使用docker images 命令可以查看本地存储的所有Docker镜像。

  • 从Docker Hub拉取镜像:

执行docker pull <镜像名称> 命令从Docker Hub下载镜像。

  • 根据Dockerfile构建镜像:

使用docker build -t <镜像名称> . 命令根据当前目录下的Dockerfile构建新镜像。

  • 标记镜像:

通过docker tag <镜像ID> <新镜像名称>:<标签> 命令给镜像打上新的标签。

  • 移除镜像:

执行docker rmi <镜像ID> 命令来删除一个不再需要的镜像。

3、容器管理

  • 查看容器日志:

使用docker logs <容器ID> 命令可以查看容器的输出日志。

  • 进入正在运行的容器(交互式Shell):

执行docker exec -it <容器ID> /bin/bash 命令可以打开一个交互式Shell,进入容器内部。

  • 从容器复制文件到宿主机:

使用docker cp <容器ID>:<容器内路径> <宿主机路径> 命令可以将文件从容器复制到宿主机。

4、Docker网络

  • 列出所有网络:

通过docker network ls 命令可以查看当前Docker环境中的所有网络。

  • 创建网络:

使用docker network create <网络名称> 命令来创建一个新的Docker网络。

  • 将运行中的容器连接到网络:

执行docker network connect <网络名称> <容器ID> 命令可以将一个正在运行的容器连接到指定的网络。

5、Docker Compose

  • 以分离模式启动服务:

使用docker-compose up -d 命令可以在后台启动Docker Compose文件中定义的所有服务。

  • 停止服务:

通过docker-compose down 命令来停止并删除由Docker Compose管理的所有服务和网络。

  • 构建并启动容器:

执行docker-compose up --build 命令可以在启动服务之前先构建或重新构建服务的镜像。

6、检查与监控

  • 检查容器详细信息:

使用docker inspect <容器ID> 命令可以查看容器的详细配置和状态信息。

  • 显示资源使用情况(CPU、内存):

执行docker stats 命令可以实时显示Docker容器的资源使用情况。

7、卷管理

  • 列出所有卷:

使用docker volume ls 命令可以查看当前Docker环境中的所有卷。

  • 创建卷:

执行docker volume create <卷名称> 命令来创建一个新的Docker卷。

  • 在运行容器时挂载卷:

使用docker run -v <卷名称>:<容器内路径> <镜像名称> 命令可以在启动容器时挂载一个卷。

8、Docker 清理

杀死所有正在运⾏的容器

1docker kill $(docker ps -a -q)

删除所有已经停⽌的容器

1docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像

1docker rmi $(docker images -q -f dangling=true)

删除所有镜像

1docker rmi $(docker images -q

删除⽆⽤的数据卷

1docker volume rm $(docker volume ls -qf dangling=true)

清理容器和镜像

1docker ps -qa | xargs -n 1 docker rm -f
2docker images -qa | xargs -n 1 docker rmi -f
1docker run -v <卷名称>:<容器内路径> <镜像名称>
2# 清理不再使用的容器、网络和镜像,释放空间