Linux常见docker命令整理 容器 镜像

目录

Docker 常见 Linux 命令

容器管理命令

运行容器

删除容器

进入容器

退出容器

停止与启动容器

查看容器

查看容器 IP 地址

文件拷贝

镜像管理命令

查看镜像

搜索镜像

拉取镜像

删除镜像

删除所有镜像

构建镜像

通过 Dockerfile 构建

Dockerfile 常用命令

Docker 服务相关命令

开启 Docker 服务(CentOS 7 以上版本)

查看 Docker 状态

查看 Docker 概要信息

查看 Docker 帮助文档

其他命令

查看容器日志

卷轴挂载

Linux Docker 停止并删除所有容器的操作方法

理解 Docker 容器状态

停止所有正在运行的容器

列出所有正在运行的容器

停止所有运行中的容器

删除所有容器

列出所有容器(包括停止的)

删除所有容器

注意事项

使用 Docker Compose 管理容器的相关操作(可选)

停止并删除由 Compose 管理的所有容器、网络和卷

仅停止容器(保留网络和卷)

删除所有 Compose 容器、网络和卷并释放卷占用的空间


Docker 常见 Linux 命令

容器管理命令

运行容器

运行容器时,可使用如下参数对容器进行配置:

  • -d:让容器在后台运行。
  • -p:进行端口映射,格式为主机端口:容器端口。
  • -e:设置环境变量,例如设置 root 密码。
  • --name:为容器设置别名。
  • -v:用于挂载目录,将容器内的目录挂载到宿主机的指定目录,如 -v /usr/local/mysql/logs:/var/log/mysql 把 mysql 容器存放日志文件的目录 /var/log/mysql 挂载在宿主机的 /usr/local/mysql/logs 下。

示例命令:

docker run -d -p 8080:80 --name mynginx -e MYSQL_ROOT_PASSWORD=123456 nginx

删除容器

使用 docker rm 命令删除指定容器,示例:

docker rm container_id

进入容器

使用 docker exec 命令进入正在运行的容器,示例:

docker exec -it container_id /bin/bash

退出容器

在容器内输入 exit 即可退出容器。

停止与启动容器

  • 停止容器:docker stop container_id
  • 启动容器:docker start container_id

查看容器

  • 查看正在运行的容器:docker ps
  • 查看所有容器(包括已停止的):docker ps -a

查看容器 IP 地址

docker inspect -f '{
   
   {range .NetworkSettings.Networks}}{
   
   {.IPAddress}}{
   
   {end}}' container_id

文件拷贝

将文件复制到容器内使用 docker cp 命令,示例:

docker cp file_path container_id:container_path

将容器内的文件复制到主机:

docker cp container_id:container_path file_path

镜像管理命令

查看镜像

使用 docker images 命令查看本地已有的镜像,其中 CREATED 表示镜像的创建日期(不是获取该镜像的日期)。

搜索镜像

若需从网络中查找镜像,可使用如下命令:

docker search image_name

拉取镜像

docker pull image_name:tag

删除镜像

docker rmi image_id

删除所有镜像

docker rmi $(docker images -q)

构建镜像

通过 Dockerfile 构建

构建步骤如下:

  1. 编写 Dockerfile 文件。
  2. 使用 docker build 命令构建镜像,示例:
docker build -t image_name:tag .
  1. 使用 docker run 命令依镜像运行容器实例。
Dockerfile 常用命令
  • FROM image_name:tag:定义使用哪个基础镜像启动构建流程。
  • MAINTAINER user_name:声明镜像的创建者。
  • ENV key value:设置环境变量(可写多条)。
  • RUN command:是 Dockerfile 的核心部分(可写多条)。
  • ADD source_dir/file dest_dir/file:将宿主机的文件复制到容器内,如果是压缩文件,将会在复制后自动解压。
  • COPY source_dir/file dest_dir/file:和 ADD 相似,但如果有压缩文件并不能解压。
  • WORKDIR path_dir:设置工作目录。

Docker 服务相关命令

开启 Docker 服务(CentOS 7 以上版本)

systemctl start docker

查看 Docker 状态

systemctl status docker

查看 Docker 概要信息

docker info

查看 Docker 帮助文档

docker --help

其他命令

查看容器日志

docker logs container_id

卷轴挂载

将主机的 /usr/share/elasticsearch.yml 文件与容器内的 /usr/share/elasticsearch/config/elasticsearch.yml 文件绑定起来:

docker run -v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  elasticsearch

Linux Docker 停止并删除所有容器的操作方法

在 Linux 系统中,若要停止并删除所有 Docker 容器,可按以下步骤进行,同时要注意这些操作可能需要管理员权限。

理解 Docker 容器状态

在执行停止和删除容器的操作之前,了解 Docker 容器的不同状态十分重要。容器主要有以下几种状态,其中停止(Exited)状态表示容器已停止运行,但仍然存在于 Docker 主机上。

停止所有正在运行的容器

列出所有正在运行的容器

可以使用以下命令列出当前所有正在运行的容器,该命令的输出会包含容器 ID、名称、状态等信息:

docker ps

停止所有运行中的容器

使用以下命令列出所有正在运行的容器的 ID,然后通过 docker stop 命令停止这些容器:

docker stop $(docker ps -q)

这里 docker ps -q 以安静模式列出所有正在运行的容器的 ID,docker stop 命令则用于停止指定 ID 的容器。

删除所有容器

列出所有容器(包括停止的)

要删除所有容器,可先列出所有容器(包括已停止的容器),使用以下命令:

docker ps -a

删除所有容器

使用以下命令删除所有容器,包括已停止的容器:

docker rm $(docker ps -a -q)

docker ps -a -q 以安静模式列出所有容器(包括已停止的)的 ID,docker rm 命令用于删除指定 ID 的容器。

注意事项

  • 若只想删除停止的容器,可以先使用上述停止所有运行中容器的命令,然后直接使用 docker rm $(docker ps -a -q) 命令删除已停止的容器。
  • 在使用这些命令时,请确保您具有适当的权限,必要时可在命令前加上 sudo 来获取管理员权限。

使用 Docker Compose 管理容器的相关操作(可选)

如果使用 Docker Compose 管理容器,也有相应的停止和删除操作:

停止并删除由 Compose 管理的所有容器、网络和卷

docker-compose down

该命令会停止并删除由 Compose 管理的所有容器、网络和卷。

仅停止容器(保留网络和卷)

docker-compose stop

该命令会停止服务容器,但不会删除它们或相关的网络和卷。

删除所有 Compose 容器、网络和卷并释放卷占用的空间

docker-compose down -v

-v 标志会删除与服务关联的所有卷,释放更多的存储空间。

除了删除容器外,还可以使用 Docker 的清理命令来释放其他未使用的资源,如镜像、网络和卷。例如,使用 docker image prune -a 命令可以删除所有未使用的镜像,而不仅仅是悬空(dangling)镜像。