目录
使用 Docker 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 构建
构建步骤如下:
- 编写 Dockerfile 文件。
- 使用
docker build
命令构建镜像,示例:
docker build -t image_name:tag .
- 使用
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)镜像。