Docker常用命令

目录

一、系统级别类命令

1.启动docker

2.停止Docker

3.重启Docker

4.查看状态

5.设置开机自启

6.取消开机自启

7.查看占据的空间

二、帮助类命令

1.查看Docker版本

2.查看Docker概要信息

3、查看Docker总体帮助文档

4、查看docker具体命令帮助文档

三、容器管理命令

1.列出运行中的容器

2.列出本地主机上的镜像

3.删除容器

4.搜索Docker Hub中镜像

5.下载Docker镜像

6. 创建并运行一个新的Docker容器

6.1 运行交互式容器

6.2 在后台运行容器

6.3 映射端口

6.4 设置环境变量

6.5 挂载卷

6.6 工作目录设置

6.7 容器重启策略

6.8 删除容器在退出时

6.9 重新进入的容器

6.10 退出容器

7.查看容器日志

7.1 查看某个容器的日志

7.2 实时日志(follow)

8.容器和宿主机文件拷贝

9.导入和导出容器

9.1 导出

9.2 导入

10.将容器生成新镜像


一、系统级别类命令

1.启动docker

systemctl start docker

2.停止Docker

systemctl stop docker

3.重启Docker

systemctl restart docker

4.查看状态

systemctl status docker

5.设置开机自启

systemctl enable docker

6.取消开机自启

systemctl disable docker

7.查看占据的空间

docker system df

二、帮助类命令

1.查看Docker版本

docker version

2.查看Docker概要信息

docker info

3、查看Docker总体帮助文档

docker --help

4、查看docker具体命令帮助文档

docker 具体命令 --help

三、容器管理命令

1.列出运行中的容器

docker ps

参数:

  • -a:列出所有容器,包括正在运行和已经停止的容器。
  • -q:只显示容器的 ID,适合用于脚本等场景。
  • -l可以显示最近一次创建的容器的详细信息。
  • --size:可以显示所有列,包括容器的大小信息。
  • --filter "status=running":指定的条件筛选容器,status=running 只显示正在运行的容器。
  • -n :可以指定显示最后创建的几个容器,例如:
docker ps -n 1

`1`  表示显示最后创建的一个容器。

  • --format可以自定义输出格式, 例如:
docker ps --format "ID\t{{.ID}}\nName\t{{.Names}}"

列出容器ID和容器名称。

2.列出本地主机上的镜像

docker images

参数:

  • -a:列出所有镜像(含历史镜像)。
  • -q:只显示镜像的 ID。
  • -f:过滤
  • --format参数可以自定义输出格式,例如:
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
  •  --filter指定的条件筛选镜像,dangling=false 表示只显示非虚悬的镜像。
docker images --filter "dangling=false"

3.删除容器

  • 用于删除 Docker 镜像 
docker rmi <镜像ID>
  •  用于删除 Docker 容器
docker rm <镜像ID>

 可以使用空格分隔,删除多个镜像:

docker rmi 镜像名称/ID

4.搜索Docker Hub中镜像

docker search <镜像名称>

默认只返回 25 个结果。 

参数:

--limit:50 返回前 50 个相关的镜像

--filter:只显示官方镜像

docker search --filter "is-official=true" <镜像名称>

5.下载Docker镜像

docker pull <镜像名称>:<标签>

如果标签未填写默认为 latest (最新的镜像)

6. 创建并运行一个新的Docker容器

docker run <镜像名称>:<标签>

参数:

  • --name:为容器指定一个名称
  • -d:后台运行容器并返回容器ID,也即启动守护式容器
  • -i:以交互模式(interactive)运行容器,通常与-t同时使用
  • -t:为容器重新分配一个伪输入终端(tty),通常与-i同时使用。也即启动交互式容器(前台有伪终端,等待交互)
  • -e:为容器添加环境变量
  • -P:随机端口映射。将容器内暴露的所有端口映射到宿主机随机端口
  • -p:指定端口映射

6.1 运行交互式容器

docker run -it --name my-interactive-container ubuntu:latest

创建一个交互式的 Ubuntu 容器,并为其指定名称为 my-interactive-container

6.2 在后台运行容器

docker run -d --name my-background-container nginx:latest

在后台运行一个 Nginx 容器,并为其指定名称为 my-background-container。 

6.3 映射端口

docker run -d -p 8080:80 --name my-web-server nginx:latest

在后台运行一个 Nginx 容器,并将主机的 8080 端口映射到容器的 80 端口。

6.4 设置环境变量

docker run -e MYSQL_ROOT_PASSWORD=password -d --name my-mysql-container mysql:latest

在后台运行一个 MySQL 容器,并设置 MySQL root 用户密码为 password。 

6.5 挂载卷

docker run -v /host/data:/container/data -d --name my-data-container busybox:latest

在后台运行一个 Busybox 容器,并将主机的 /host/data 目录挂载到容器的 /container/data 目录。

6.6 工作目录设置

docker run -w /app -d --name my-app-container my-app-image:latest

在后台运行一个自定义镜像,并将容器的工作目录设置为 /app

6.7 容器重启策略

docker run -d --restart always --name my-always-restart-container nginx:latest

在后台运行一个 Nginx 容器,并设置容器总是在退出时重新启动。

6.8 删除容器在退出时

docker run --rm -it ubuntu:latest

创建一个交互式的 Ubuntu 容器,在容器退出时自动删除。

6.9 重新进入的容器

docker exec -it <容器> /bin/bash

-it 表示以交互式模式进入容器,/bin/bash 是要在容器内执行的 Shell。

6.10 退出容器

方式一:

在交互shell中exit即可退回宿主机,退出后,容器会停止!!!

docker logs <容器ID或容器名称>

方式二:

exit;

使用快捷键 Ctrl + P + Q,退出后容器依然正在运行。

7.查看容器日志

7.1 查看某个容器的日志

docker logs 容器ID||容器名

7.2 实时日志(follow)

docker logs <容器ID或容器名称>
参数:

  • -f:可以实时查看容器的日志,类似于 tail -f 的效果。
  • --timestamps:在日志中显示时间戳。
  • --tail N:可以显示最新的N行日志,例如
docker logs --tail 10 my-container

显示最新的10行日志。

8.容器和宿主机文件拷贝

容器内文件拷贝到宿主机:

docker cp 容器ID:容器内路径 目的主机路径

宿主机文件拷贝到容器中:

docker cp 主机路径 容器ID:容器内路径

9.导入和导出容器

export:导出容器的内容流作为一个tar归档文件(对应import命令)。

import:从tar包中的内容创建一个新的文件系统再导入为镜像(对应export命令)。

9.1 导出

docker export 容器ID > tar文件名

docker export abc > aaa.tar

9.2 导入

cat tar文件 | docker import - 自定义镜像用户/自定义镜像名:自定义镜像版本号

cat aaa.tar | docker import - test/mytest:1.0.1

10.将容器生成新镜像

用于创建一个新的镜像,该镜像是基于已经运行的容器的当前状态生成的。

docker commit <容器ID或容器名称> <新镜像名称>
docker commit -m="提交的描述信息" -a="作者" <容器ID或容器名称> <新镜像名称>:[tag]

-m 和 -a 可选。 

 docker 启动一个镜像容器后, 可以在里面执行一些命令操作,然后使用docker commit将新的这个容器快照生成一个镜像。

ps:Docker挂载主机目录,可能会出现报错:cannot open directory .: Perission denied

解决方案:在命令中加入参数 --privileged=true,用于赋予容器拥有主机 root 用户权限。


你可能感兴趣的:(Docker,docker,容器)