目录
一、系统级别类命令
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.将容器生成新镜像
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker
systemctl disable docker
docker system df
docker version
docker info
docker --help
docker 具体命令 --help
docker ps
参数:
-l:
可以显示最近一次创建的容器的详细信息。status=running
只显示正在运行的容器。-n
:可以指定显示最后创建的几个容器,例如:docker ps -n 1
`1` 表示显示最后创建的一个容器。
--format:
可以自定义输出格式, 例如:docker ps --format "ID\t{{.ID}}\nName\t{{.Names}}"
列出容器ID和容器名称。
docker images
参数:
-a
:列出所有镜像(含历史镜像)。-q
:只显示镜像的 ID。-f
:过滤--format:
参数可以自定义输出格式,例如:docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
--filter:
指定的条件筛选镜像,dangling=false
表示只显示非虚悬的镜像。docker images --filter "dangling=false"
docker rmi <镜像ID>
docker rm <镜像ID>
可以使用空格分隔,删除多个镜像:
docker rmi 镜像名称/ID
docker search <镜像名称>
默认只返回 25 个结果。
参数:
--limit:50 返回前 50 个相关的镜像
--filter:只显示官方镜像
docker search --filter "is-official=true" <镜像名称>
docker pull <镜像名称>:<标签>
如果标签未填写默认为 latest (
最新的镜像)
docker run <镜像名称>:<标签>
参数:
--name
:为容器指定一个名称-d
:后台运行容器并返回容器ID,也即启动守护式容器-i
:以交互模式(interactive)运行容器,通常与-t
同时使用-t
:为容器重新分配一个伪输入终端(tty),通常与-i
同时使用。也即启动交互式容器(前台有伪终端,等待交互)-e
:为容器添加环境变量-P
:随机端口映射。将容器内暴露的所有端口映射到宿主机随机端口-p
:指定端口映射docker run -it --name my-interactive-container ubuntu:latest
创建一个交互式的 Ubuntu 容器,并为其指定名称为 my-interactive-container
。
docker run -d --name my-background-container nginx:latest
在后台运行一个 Nginx 容器,并为其指定名称为 my-background-container
。
docker run -d -p 8080:80 --name my-web-server nginx:latest
在后台运行一个 Nginx 容器,并将主机的 8080 端口映射到容器的 80 端口。
docker run -e MYSQL_ROOT_PASSWORD=password -d --name my-mysql-container mysql:latest
在后台运行一个 MySQL 容器,并设置 MySQL root 用户密码为 password
。
docker run -v /host/data:/container/data -d --name my-data-container busybox:latest
在后台运行一个 Busybox 容器,并将主机的 /host/data
目录挂载到容器的 /container/data
目录。
docker run -w /app -d --name my-app-container my-app-image:latest
在后台运行一个自定义镜像,并将容器的工作目录设置为 /app
。
docker run -d --restart always --name my-always-restart-container nginx:latest
在后台运行一个 Nginx 容器,并设置容器总是在退出时重新启动。
docker run --rm -it ubuntu:latest
创建一个交互式的 Ubuntu 容器,在容器退出时自动删除。
docker exec -it <容器> /bin/bash
-it
表示以交互式模式进入容器,/bin/bash
是要在容器内执行的 Shell。
方式一:
在交互shell中exit即可退回宿主机,退出后,容器会停止!!!
docker logs <容器ID或容器名称>
方式二:
exit;
使用快捷键 Ctrl + P + Q,退出后容器依然正在运行。
docker logs 容器ID||容器名
docker logs <容器ID或容器名称>
参数:
tail -f
的效果。docker logs --tail 10 my-container
显示最新的10行日志。
容器内文件拷贝到宿主机:
docker cp 容器ID:容器内路径 目的主机路径
宿主机文件拷贝到容器中:
docker cp 主机路径 容器ID:容器内路径
export
:导出容器的内容流作为一个tar归档文件(对应import
命令)。
import
:从tar包中的内容创建一个新的文件系统再导入为镜像(对应export
命令)。
docker export 容器ID > tar文件名
docker export abc > aaa.tar
cat tar文件 | docker import - 自定义镜像用户/自定义镜像名:自定义镜像版本号
cat aaa.tar | docker import - test/mytest:1.0.1
用于创建一个新的镜像,该镜像是基于已经运行的容器的当前状态生成的。
docker commit <容器ID或容器名称> <新镜像名称>
docker commit -m="提交的描述信息" -a="作者" <容器ID或容器名称> <新镜像名称>:[tag]
-m 和 -a 可选。
docker 启动一个镜像容器后, 可以在里面执行一些命令操作,然后使用docker commit
将新的这个容器快照生成一个镜像。
ps:Docker挂载主机目录,可能会出现报错:cannot open directory .: Perission denied
。
解决方案:在命令中加入参数 --privileged=true,
用于赋予容器拥有主机 root 用户权限。